# Objective Add two features to switch bevy to use `NativeActivity` or `GameActivity` on Android, use `GameActivity` by default. Also close #12058 and probably #12026 . ## Solution Add two features to the corresponding crates so you can toggle it, like what `winit` and `android-activity` crate did. --- ## Changelog Removed default `NativeActivity` feature implementation for Android, added two new features to enable `NativeActivity` and `GameActivity`, and use `GameActivity` by default. ## Migration Guide Because `cargo-apk` is not compatible with `GameActivity`, building/running using `cargo apk build/run -p bevy_mobile_example` is no longer possible. Users should follow the new workflow described in document. --------- Co-authored-by: François Mockers <francois.mockers@vleue.com> Co-authored-by: BD103 <59022059+BD103@users.noreply.github.com> Co-authored-by: Rich Churcher <rich.churcher@gmail.com>
		
			
				
	
	
		
			68 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Groovy
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Groovy
		
	
	
	
	
	
plugins {
 | 
						|
    alias(libs.plugins.android.application)
 | 
						|
}
 | 
						|
 | 
						|
android {
 | 
						|
    namespace 'org.bevyengine.example'
 | 
						|
    compileSdk 34
 | 
						|
 | 
						|
    defaultConfig {
 | 
						|
        applicationId "org.bevyengine.example"
 | 
						|
        minSdk 31
 | 
						|
        targetSdk 33
 | 
						|
        versionCode 1
 | 
						|
        versionName "1.0"
 | 
						|
        // need this otherwise it won't insert libc++_shared.so
 | 
						|
        externalNativeBuild {
 | 
						|
            cmake {
 | 
						|
                arguments "-DANDROID_STL=c++_shared"
 | 
						|
            }
 | 
						|
        }
 | 
						|
        // set up targets
 | 
						|
        ndk {
 | 
						|
            abiFilters 'arm64-v8a'
 | 
						|
        }
 | 
						|
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
 | 
						|
    }
 | 
						|
    externalNativeBuild {
 | 
						|
        cmake {
 | 
						|
            path "CMakeLists.txt"
 | 
						|
        }
 | 
						|
    }
 | 
						|
    buildTypes {
 | 
						|
        release {
 | 
						|
            minifyEnabled false
 | 
						|
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
 | 
						|
        }
 | 
						|
    }
 | 
						|
    compileOptions {
 | 
						|
        sourceCompatibility JavaVersion.VERSION_1_8
 | 
						|
        targetCompatibility JavaVersion.VERSION_1_8
 | 
						|
    }
 | 
						|
    buildFeatures {
 | 
						|
        viewBinding true
 | 
						|
    }
 | 
						|
    // The final part to insert libc++_shared.so only
 | 
						|
    packagingOptions {
 | 
						|
        exclude 'lib/*/libdummy.so'
 | 
						|
    }
 | 
						|
 | 
						|
    sourceSets {
 | 
						|
        main {
 | 
						|
            assets.srcDirs += files('../../../../assets')
 | 
						|
 | 
						|
            res.srcDirs += files('../../../../assets/android-res')
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
dependencies {
 | 
						|
 | 
						|
    implementation libs.appcompat
 | 
						|
    implementation libs.material
 | 
						|
    implementation libs.constraintlayout
 | 
						|
    testImplementation libs.junit
 | 
						|
    androidTestImplementation libs.ext.junit
 | 
						|
    androidTestImplementation libs.espresso.core
 | 
						|
}
 |