我正在使用Android studio 1.0.1& Gradle 1.0.0。
我正在尝试使用具有相同名称的特定于风味的JNI库(和相同的入口点,只有内部代码不同)。
我有两种口味"完整"和" lite"目前仍然指向相同的jni lib" my-lib.so"。
我有以下项目树:
app\
src\
main\
jniLibs\
armeabi-v7a\
my-lib.so
full\
lite\
我希望有一个不同的" my-lib.so"每种口味的lib。风味之间的所有变化都是图书馆内部的。
我尝试过这样的事情:
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有可能做到这一点吗?我错过了重要的事吗? 谢谢你的帮助: - )
答案 0 :(得分:1)
您不能在产品说明目录(此处为full
和lite
)中的文件与main
中的文件相同。
您必须删除main
中的文件才能使其正常工作。