1. 在其余目录中依赖 flutter SDK
plugins {
id 'com.android.library'
id 'kotlin-android'
}
// 在其余目录中依赖 flutter SDK
def 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'
}
}