Android Studio / Gradle-配置特定于风味的Jni库

哈米杜

我正在使用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可能发生这种情况吗?我缺少重要的东西吗?谢谢你的帮助 :-)

加坦

您无法在商品风味目录(此处fulllite)中找到与中的文件相同的文件main

Si,您必须删除其中的文件main才能使其正常工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章