我有一个 C 库,我希望将其包装在 JNI 中并从我的 android 项目中调用。 .so 文件是以下架构:i386:x86-64。每当我将其添加到 src/main/jniLibs/arm64-v8a|armeabi-v7a|x86 文件夹内的项目时,我都会收到一条错误消息,指出 .so 文件是 64 位而不是 32 位。我尝试交叉引用这个问题,并注意到人们通常会遇到相反的问题,其中 .so 是 32 位而不是 64 位。我尝试梳理 Android 文档,看看我哪里搞砸了,但似乎找不到解决方案。
最佳答案
64 位库不应位于 src/main/jniLibs/armeabi-v7a 文件夹中。如果您的设备支持 arm64-v8a ABI,则应用程序将使用 64 位库。如果设备不兼容,则无法使用该库。
关于java.lang.UnsatisfiedLinkError : dlopen failed: . 所以库是 64 位而不是 32 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50109400/