相关疑难解决方法(0)

如何在64位Android设备上使用32位本机库

我在我的应用程序中使用本机库,该库仅为armeabi,armeabi-v7a和x86编译.

在像Samsung S6这样的64位设备上加载此库时,应用程序崩溃并出现UnsatisfiedLinkError

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.myapp-2/base.apk"],nativeLibraryDirectories=[/data/app/com.myapp-2/lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "libfoo.so"
    at java.lang.Runtime.loadLibrary(Runtime.java:366)
    at java.lang.System.loadLibrary(System.java:989)
Run Code Online (Sandbox Code Playgroud)

不幸的是,图书馆是封闭的来源.有没有办法解决这个问题而无需使用64位目标重新编译库?

android android-ndk ndk-build

54
推荐指数
2
解决办法
3万
查看次数

Android multidex,UnsatisfiedLinkError - 找不到.so文件

我正在尝试在android studio中为我的multidex项目添加一些lib(.jar和.so).

当我只为项目添加几个罐子时一切正常.如果我添加越来越多的罐子(其他库)我收到此错误:

java.lang.UnsatisfiedLinkError:
  dalvik.system.PathClassLoader[DexPathList[[zip file
  "/data/app/com.test.digital.ocrtest-2/base.apk"],nativeLibraryDirectories=[/data/app/com.test.digital.ocrtest-2/lib/arm,
  /data/app/com.test.digital.ocrtest-2/base.apk!/lib/armeabi-v7a,
  /vendor/lib, /system/lib]]] couldn't find
  "libScanovatePassportAndIDLSDK_CPP.so"
Run Code Online (Sandbox Code Playgroud)

任何想法我怎么能告诉编译器生成jar,所以在同一个dex?

java-native-interface android android-studio android-gradle-plugin

8
推荐指数
1
解决办法
8462
查看次数