我有编译具有不同架构的JNI库的不同模块的问题
Module jniOne:
/jniLib/armeabi
&安培;
Module jniTwo:
/jniLib/armeabi-v7a
/jniLib/x86
两个模块都不同,并且具有不同的.so文件。
现在问题是当我在主应用程序中包含两个模块时,一个模块jni库没有编译并获得java.lang.UnsatisfiedLinkError
。
MainApp:
build.gradle
compile project(':jniOne')
compile project(':jniTwo')
如果我包含两个以上的任何一个,那么应用程序运行完美。
那么我在这个jniLib编译中缺少什么?
答案 0 :(得分:0)
据我所知。在项目中具有jniLibs的所有模块应该具有相同的abiFilters jnilibs。
示例:
模块jniOne: / jniLib / armeabi
模块jniTwo: / jniLib / armeabi
在你的情况下,问题是jniOne创建了armeabi,jniTwo创建了armeabi-v7a,x86。在运行时系统尝试链接'所以'所有已创建文件夹中的文件在那里找不到JniTwo'所以' armeabi和JniOne中的文件'所以'文件在armeabi-v7a,x86中,并给出UnsatisfiedLinkError。
另外添加:
ndk { abiFilters' armeabi',' armeabi-v7a',.... } 在项目和模块渐变的defaultConfig中。