【发布时间】:2017-07-19 14:15:35
【问题描述】:
我在编译具有不同架构的 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 编译中缺少什么?
【问题讨论】:
-
你的目标架构是什么?如果 jniOne 和 jniTwo 不通信,你可能会作弊并将 jniOne 的共享库放在 armeabi-v7a 下 (ABI 不兼容,但 Java 并不真正关心)。然后,您将能够在 armeabi-v7a 设备或模拟器上安装您的 APK。您可以将 abiFilters 添加到您的 build.gradle 中删除 x86 库。
标签: android android-ndk java-native-interface android.mk