我正在使用 Android Studio 1.0.1 和 Gradle 1.0.0。
我正在尝试使用具有相同名称的特定于风味的 JNI 库(以及相同的入口点,只有内部代码不同)。
我有两种口味“full”和“lite”,目前仍然指向同一个 jni lib“my-lib.so”。
我有以下项目树:
app\
src\
main\
jniLibs\
armeabi-v7a\
my-lib.so
full\
lite\
我想为每种口味使用不同的“my-lib.so”库。口味之间的所有变化都是图书馆内部的。
我试图做类似的事情:
app\
src\
main\
jniLibs\
armeabi-v7a\
my-lib.so
full\
jniLibs\
armeabi-v7a\
my-lib.so
lite\
jniLibs\
armeabi-v7a\
my-lib.so
但这会引发以下错误消息:
错误:APK %path%\app\build\outputs\apk\app-lite-debug-unaligned.apk 打包过程中文件重复 存档路径:lib/armeabi-v7a/my-lib.so 来源 1:%path% \app\src\main\jniLibs\armeabi-v7a\my-lib.so 来源 2:%path%\app\src\lite\jniLibs\armeabi-v7a\my-lib.so
我得到了以下 Gradle 构建:
apply plugin: 'com.android.application'
android {
compileSdkVersion 19
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "xxxxxxxxx"
minSdkVersion 15
targetSdkVersion 19
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
productFlavors {
lite {
applicationId "xxxxxxxxxxLite"
minSdkVersion 16
targetSdkVersion 19
ndk {
abiFilter "armeabi-v7a"
}
}
full {
applicationId "xxxxxxxxxxxFull"
minSdkVersion 18
targetSdkVersion 19
ndk {
abiFilter "armeabi-v7a"
}
}
}
}
Gradle 可以做这种事情吗?我错过了什么重要的东西吗?谢谢你的帮助 :-)