Fel*_*x.D 4 android gradle android-gradle-plugin
abiFilters在 android build.gradledefaultConfig 块中设置。
我想x86从发布 buildType 中排除,但找不到简单的方法来做到这一点
这是build.gradle:
defaultConfig {
ndk {
abiFilters "armeabi", "x86"
moduleName "cipher_v1"
cFlags "-DRELEASE=1"
if (rootProject.ext.has("testCrack")) {
cFlags += " -DTEST_CRACK"
}
if (project.ext.has("authKey") && project.ext.has("androidId")) {
cFlags += "-DAUTH_KEY=\\\"" + project.ext.authKey + "\\\""
"-DANDROID_ID=\\\"" + project.ext.androidId + "\\\""
}
}
}
buildTypes {
release {
ndk {
abiFilters "armeabi"
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的:
unzip -l base-release.aar|grep cipher
17752 02-01-1980 00:00 jni/armeabi/libcipher_v1.so
17640 02-01-1980 00:00 jni/x86/libcipher_v1.so
Run Code Online (Sandbox Code Playgroud)
这是我真正想要的:
unzip -l base-release.aar|grep cipher
17752 02-01-1980 00:00 jni/armeabi/libcipher_v1.so
Run Code Online (Sandbox Code Playgroud)
我想保留一个完整abiFilters的defautlConfig块
并在某些指定的 buildType
编辑 1:
是的,移除defaultConfig和设置abiFilters在两个debug与release块会工作。但我的问题是如何利用defaultConfig
提供命令行选项,例如“ no_x86 ”
在下面添加到您的 app/build.gradle
defaultConfig {
ndk {
...
if (project.hasProperty("no_x86")) {
abiFilters "armeabi"
} else {
abiFilters "armeabi", "x86"
}
...
}
}
Run Code Online (Sandbox Code Playgroud)使用以下命令通过向命令提供选项来生成没有x86 ABI的 APK no_x86。
./gradlew assemble -Pno_x86
Run Code Online (Sandbox Code Playgroud)
但no_x86如果您想使用x86 abi构建 APK ,请不要向命令提供选项。因为这defaultConfig是根据您的要求保留完整的 abiFilters 。
对于某些buildType,您可以通过提供或不提供-Pno_x86属性来调用相应的构建命令。例如./gradlew assembleRelease -Pno_x86
参考: https : //stackoverflow.com/a/52980193/8034839
| 归档时间: |
|
| 查看次数: |
1299 次 |
| 最近记录: |