我的应用旨在在 android 6 上运行,据我所知,它不允许加载共享库。
有没有人遇到过这个问题并且能够成功解决?
java.lang.UnsatisfiedLinkError: dlopen failed: /data/app/com.XXX.XXX-2/lib/arm/libiconv.so: has text relocations
最佳答案
Android 6 不再支持共享对象的动态链接。静态链接仍然有效。但是,您的问题与此无关。
由于文本重定位,库甚至没有加载。
这是由于 Android NDK 中的一个旧错误,早在 2012 年。谷歌认为它可以用 Lollipop 解决,然后忽略了用户警告说它不是。该错误在后来的 NDK 中重新出现,所有 API 版本 >=22 都被视为已损坏。现在,带有文本重定位的应用程序没有解决问题,而是被简单地禁止部署。
第一份报告: https://code.google.com/p/android/issues/detail?id=23203
为避免此问题,请尝试使用 API 21 编译您的应用。请参阅您的 IDE 文档以了解如何针对各种操作系统版本。
关于android - libiconv.so : has text relocations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37360464/