新版的android端build.gradel采用了Kotlin ,语法和原先的Groovy 有点区别,build.gradle.kt 的配置结合了上层的settings.gradle.kts文件进行配置
新语法如图:
新版使用 externalNativeBuild、ndkBuild、getDefaultProguardFile


kotlin
externalNativeBuild {
ndkBuild {
abiFilters.addAll(listOf("arm64-v8a", "armeabi-v7a"))
}
}
// ndkBuild还可以是CMake,例如:
// ndkBuild {
// path = file("src/main/cpp/Android.mk")
// }
kotlin
// 原先的MinifyEnabled等也改了
isMinifyEnabled = true
isShrinkResources = true
// 新版getDefaultProguardFile
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
下面是一些常用的配置,根据自己需求配置,大多数和原先大差不差
kotlin
plugins {
id("com.android.application")
kotlin("android")
}
android {
namespace = "com.example.app"
compileSdk = 34
defaultConfig {
applicationId = "com.example.app"
minSdk = 21
targetSdk = 34
versionCode = 1
versionName = "1.0"
// 如果使用 native 代码
externalNativeBuild {
ndkBuild {
abiFilters.addAll(listOf("arm64-v8a", "armeabi-v7a"))
}
}
// 多语言支持(可选)
resourceConfigurations.addAll(listOf("en", "zh", "ja"))
}
// 建议将密码等敏感信息放入 gradle.properties 文件中
// 并用 project.property("key") 读取
signingConfigs {
create("release") {
storeFile = file(project.property("RELEASE_STORE_FILE") as String)
storePassword = project.property("RELEASE_STORE_PASSWORD") as String
keyAlias = project.property("RELEASE_KEY_ALIAS") as String
keyPassword = project.property("RELEASE_KEY_PASSWORD") as String
}
}
buildTypes {
release {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
debug {
isMinifyEnabled = false
isShrinkResources = false
}
}
// 构建 ABI 分包(可选)
splits {
abi {
isEnable = true
reset()
include("arm64-v8a", "armeabi-v7a")
isUniversalApk = false
}
}
// Flutter 兼容性设置(防止构建冲突)
packaging {
resources {
excludes += setOf(
"META-INF/**",
"lib/**/libflutter.so",
"**/*.kotlin_module"
)
}
}
externalNativeBuild {
ndkBuild {
path = file("src/main/cpp/Android.mk") // 如果你使用 ndk-build
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = "17"
}
}
dependencies {
implementation("org.jetbrains.kotlin:kotlin-stdlib:1.9.10")
// 添加你需要的库
}
gradle.properties加入jks信息
properties
RELEASE_STORE_FILE=keystore.jks
RELEASE_KEY_ALIAS=myKeyAlias
RELEASE_STORE_PASSWORD=yourStorePassword
RELEASE_KEY_PASSWORD=yourKeyPassword