Android L(5.0)不会在 eclipse 中搜索“armeabi”或“armeabi-v7a”文件夹中的本机库(UnsatisfiedLinkError)

2023-11-30

我的应用程序使用 2 个本机库,我们称它们为 LibA.so 和 LibB.so。以前,我的应用程序在 kitkat 操作系统以下运行,没有任何问题。

现在,使用 OS 5.0(lollipop) 的 Nexus 5 出现 UnsatisfiedLinkError 两个 .so 库都位于armeabi 文件夹中。

因此,请给我遵循的通用解决方案文件夹结构。

我对 android 中的本机库相当陌生。提前致谢!

更新: 现在效果很好。 通过将我的 LibA.so 文件链接更改为 Md5_init 相关调用得到了解决方案。 在 Os 5.0 中,google 对系统库调用进行了一些更改 感谢大家的支持


从您的错误描述中我可以看到该库LibA.so未加载,因为它使用了一些MD5代码不可用 - 未链接。 例如,您可以使用其他本机共享库,并在构建过程中链接 MD5 源(作为共享库) - 但您没有将此共享库复制到目标应用程序libs folder.

我不确定实施MD5相关功能已包含在最新的 Android NDK 中。也可能它是以前版本的一些 Android 系统共享库的一部分,并且已从 Android L 中删除。

因此,您需要检查 C++/C 代码对 MD5 相关函数的引用,并找到存储/链接源的位置。

我可以提供从以下位置导出的函数列表的链接libc.so以 android-17 和 android-L 为例:Android-17 LIBC 函数 vs Android-L LIBC 函数

正如您可能会看到的 - MD5 相关函数L 的共享库中不存在- 所以我相信您必须将这些功能的源代码 (MD5) 包含到您的动态库中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android L(5.0)不会在 eclipse 中搜索“armeabi”或“armeabi-v7a”文件夹中的本机库(UnsatisfiedLinkError) 的相关文章

随机推荐