首页 文章

使用Android Studio找不到ARM64 NDK本机库(1.3 RC)

提问于
浏览
2

致命异常:java.lang.UnsatisfiedLinkError dalvik.system.PathClassLoader [DexPathList [[zip file“/data/app/com.myapp-1/base.apk"],nativeLibraryDirectories=[/data/app/com.myapp- 1 / lib / arm64,/ vendor / lib64,/ system / lib64]]]找不到“libnative.so”

它只发生在ARM64设备上 . 我没有在我的gradle设置中设置任何自定义NDK构建 .

看起来Android Studio会以某种方式弄乱正确的文件夹以复制.so文件 .

如何发生以及如何解决?

2 回答

  • 0

    基本上我们要做的是,将你的.so文件放在一个名为lib的文件夹中(注意:它不是libs,这不是一个错误) . 它应该在相同的结构中,它应该在APK文件中 .

    项目:

    | --lib:

    | - | --armeabi:

    | - | - | - . so文件 .

    1)所以我创建了一个lib文件夹,里面有一个armeabi文件夹,我插入了所有需要的.so文件 .

    2)然后我将文件夹压缩成.zip(zip文件中的结构现在是lib / armeabi / * .so) .

    3)然后,我将.zip文件重命名为armeabi.jar .

    4)并且,在gradle的构建文件中将行编译fileTree(dir:'libs',include:'* .jar')添加到依赖项{}中 .

  • 0

    也许你正在使用另一个为arm64-v8a嵌入.so文件的库?打开你的APK作为一个zip文件,并查看 lib 文件夹,看看是否是这种情况 .

    然后,要解决您的问题,您可以使用 abiFilters 仅为您完全支持的体系结构包含.so文件:

    android {
        ....
        defaultConfig {
            ....
            ndk {
                abiFilters "armeabi-v7a", "x86"
            }
        }
    }
    

相关问题