1.在其余目录中依赖flutter SDK
plugins { id 'com.android.library' id 'kotlin-android'}// 在其余目录中依赖flutter SDKdef localProperties = new Properties()def localPropertiesFile = rootProject.file('local.properties')if (localPropertiesFile.exists()) { localPropertiesFile.withReader('UTF-8') { reader -> localProperties.load(reader) }}def flutterRoot = localProperties.getProperty('flutter.sdk')apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"android { compileSdkVersion 29 defaultConfig { minSdkVersion 16 targetSdkVersion 29 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" consumerProguardFiles "consumer-rules.pro" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' versionNameSuffix kotlin_version } profile { versionNameSuffix kotlin_version } debug { versionNameSuffix kotlin_version } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = '1.8' }}flutter { source '../..'}dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation 'androidx.core:core-ktx:1.2.0' implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'com.google.android.material:material:1.1.0' implementation fileTree(dir: 'libs', include: ['*.aar', '*.jar'], exclude: []) testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'}
2.只打包flutter所反对的架构
android { compileSdkVersion 29 sourceSets { main.java.srcDirs += 'src/main/kotlin' } lintOptions { disable 'InvalidPackage' } defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.example.flutter_app" minSdkVersion 16 targetSdkVersion 29 versionCode flutterVersionCode.toInteger() versionName flutterVersionName ndk { abiFilters "arm64-v8a", "x86_64", "x84" // 只打包flutter所反对的架构,flutter没有armeabi、armeabi-v7a架构的so, x86是为了兼容模拟器 } } buildTypes { release { // TODO: Add your own signing config for the release build. // Signing with the debug keys for now, so `flutter run --release` works. signingConfig signingConfigs.debug } profile { applicationIdSuffix flutterVersionName versionNameSuffix flutterVersionName } } packagingOptions { // 确保app与asr_plugin 都依赖lib/flutter.so,merge时不抵触 pickFirst 'lib/x86_64/libflutter.so' pickFirst 'lib/arm64-v8a/libflutter.so' pickFirst 'lib/x84/libflutter.so' }}