Android不会在类似的应用上加载辅助ABI

时间:2016-08-10 12:17:00

标签: java android android-ndk

我们有两个相同的应用程序。它们都具有相同的项目结构。有本机共享库(已编译,无法访问源代码)。我已将共享库放在

  1. root/app/main/jniLibs/armeabi
  2. root/app/main/jniLibs/armeabi-v7a
  3. root/app/main/jniLibs/x86
  4. 没有针对.so架构的arm64文件。

    我的设备支持以下架构,

    [ro.product.cpu.abi]: [arm64-v8a]
    [ro.product.cpu.abilist32]: [armeabi-v7a,armeabi]
    [ro.product.cpu.abilist64]: [arm64-v8a]
    [ro.product.cpu.abilist]: [arm64-v8a,armeabi-v7a,armeabi]
    

    然而,第一个应用程序运行没有任何问题,但第二个应用程序与java.lang.UnsatisfiedLinkError崩溃。以下是堆栈跟踪。

    java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.someapp.name-1/base.apk"],nativeLibraryDirectories=[/data/app/com.someapp.name-1/lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "libstar_wars_jni.so"
        at java.lang.Runtime.loadLibrary(Runtime.java:366)
        at java.lang.System.loadLibrary(System.java:988)
        at com.native.library.tstlib.<clinit>(tstlib.java:6)
        at com.someapp.name.FingerprintDevice$1.disconnect(FingerprintDevice.java:82)
        at com.someapp.name.FingerprintDevice$1.onReceive(FingerprintDevice.java:73)
        at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:866)
        at android.os.Handler.handleCallback(Handler.java:739)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5268)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:697)
    

    我还检查了生成的APK,发现apk so目录中存在/lib个文件。

    我不知道下一步该去哪儿。指针表示赞赏:)

0 个答案:

没有答案