Rus*_*ken 7 android shared-libraries android-ndk android-gradle-plugin
在我看来,gradle Android 插件没有将版本化的 .so 库包含到 .aar 存档中。
我的情况:我需要在需要另一个库的 Android 应用程序中加载一些库: libz.so.1
我确实有libz.so
和libz.so.1
在我的本机库目录中。
运行 gradle 后libz.so
,创建的 .aar 存档中只有库。java.lang.UnsatisfiedLinkError: dlopen failed: library "libz.so.1" not found
当我尝试运行我的应用程序时,它会导致异常。
看起来我otherlibrary
只尝试加载特定版本的 libz。
readelf -d otherlibrary.so
还告诉我它想要特定的库:
0x00000001 (NEEDED) Shared library: [libz.so.1]
我要加载的两个库都是第三方库。看起来我需要为以下其中一项找到一种方法:
libz.so.1
到 .aar 存档中,因此otherlibrary.so
可以轻松与之链接libz.so
并以某种方式otherlibrary.so
与它链接但我的想法不多了,该怎么做。
构建 .aar 存档的 build.gradle 的一部分:
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
Run Code Online (Sandbox Code Playgroud)
libs
目录包含libz.so
和libs.so.1
库。只有libz.so
汇编成.aar 文件。
此页面:https : //developer.android.com/studio/projects/android-library#aar-contents
建议我只/jni/abi_name/name.so
支持模式。
期待一些帮助。
归档时间: |
|
查看次数: |
740 次 |
最近记录: |