我有相当大的源代码树,其中也包含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/x86
和src/main/libs/armeabi
文件夹中 - 我已经仔细检查了它。
我真的坚持这个问题 - 请帮助。
顺便说一句:风流X-Mas!答案 0 :(得分:1)
我的关键点是:
compileSdkVersion 21 //instead 19
一旦我将compileSdkVersion从19更改为21,问题就解决了(还需要将JDK 6更改为JDK 7.
...魔术