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