所以我构建了一个包含原生库(libnative-lib.so)的 Android aar 库。由于向后兼容性考虑,它仅针对 armeabi 和 x86 架构构建。
现在,我放置 aar 文件并在我的“客户端”应用程序中使用它,我可以清楚地看到 libnative-lib.so 位于 aar 的 jni/armeabi 和 jni/x86 文件夹下。
但是应用程序崩溃并显示以下消息:
java.lang.UnsatisfiedLinkError: ...
nativeLibraryDirectories=[/vendor/lib64, /system/lib64]]] couldn't find "libnative-lib.so"
这看起来像客户端应用程序无法从 aar 找到 nativelib。有什么建议么?
最佳答案
实际上在我的情况下,由于提到的向后兼容性考虑,我需要将它放在我库的 build.gradle 中:
packagingOptions {
exclude 'lib/armeabi-v7a/libnative-lib.so'
exclude 'lib/x86_64/libnative-lib.so'
}
保护构建远离不需要的架构。
关于android-ndk - UnsatisfiedLinkError 在 aar 文件中找不到带有 libnative-lib.so 的 "libnative-lib.so",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49310144/