Gradle不会将JNI *.so库打包到APK文件中



我有相当大的源代码树,其中也包括 JNI 源代码:

android {
compileSdkVersion 19
buildToolsVersion '21.1.1'
lintOptions {
    abortOnError false
}    
sourceSets {
        main {
            manifest.srcFile 'src/main/AndroidManifest.xml'
            java.srcDirs = ['src/main/java']
            res.srcDirs = ['src/main/res']
            aidl.srcDirs=['src/main/aidl']
            assets.srcDirs = ['src/main/assets']
            jni.srcDirs=[] //to suppress makefiles autogeneration
            //jni.srcDirs=['src/main/jni']
            jniLibs.srcDirs=['src/main/libs'] //native *.so in armeabi x86 and mips to include
        }
    }
}
//skipped
dependencies {
    apt 'org.androidannotations:androidannotations:3.0+'
    compile 'org.androidannotations:androidannotations-api:3.0+'
    compile project(':actionbarsherlock')
    compile project(':actionbarsherlocki18n')
    compile 'com.android.support:support-v4:21.0.2'
    compile 'com.google.code.gson:gson:2.2.4'
    compile files('libs/acra-4.5.0.jar')
    compile files('libs/libphonenumber-5.9.jar')
    compile files('libs/universal-image-loader-1.8.6.jar')
}
ant.importBuild 'src/main/jni/build_native.xml'  //ant task to build JNI

一切正常,除了 Gradle 没有将 *.so 文件放入最终的 APK 文件中。Ant 确实生成 *.so 库并将它们放入src/main/libs/x86src/main/libs/armeabi文件夹中 - 我已经仔细检查了它。

我真的被这个问题困住了 - 请帮忙。

顺便说一句:圣诞快乐!

我的情况的关键点是:

compileSdkVersion 21  //instead 19

一旦我将 compileSdkVersion 从 19 更改为 21 - 问题就解决了(也将 JDK 6 更改为 JDK 7 也需要。

魔法。。。

相关内容

  • 没有找到相关文章

最新更新