libiconv.so: имеет перемещение текста

Мое приложение предназначено для работы на Android 6, что, насколько я понимаю, не позволяет загружать общие библиотеки.

Кто-нибудь сталкивался с этой проблемой и смог ее успешно решить?

java.lang.UnsatisfiedLinkError: ошибка dlopen: /data/app/com.XXX.XXX-2/lib/arm/libiconv.so: имеет текстовые перемещения


person Bob Sacamano    schedule 21.05.2016    source источник


Ответы (1)


Android 6 больше не поддерживает динамическое связывание общих объектов. Статическая ссылка все еще работает. Однако ваша проблема не связана с этим.

Библиотека даже не загружается из-за ее текстовых релокаций.

Это связано со старой ошибкой в ​​Android NDK еще в 2012 году. Google считал, что с Lollipop ее можно решить, но проигнорировал предупреждения пользователей о том, что это не так. Ошибка снова появилась в более поздних NDK, все версии API >=22 считаются неисправными. Вместо того, чтобы исправить проблему, приложения с текстовыми релокациями теперь просто запрещено развертывать.

Первый отчет: https://code.google.com/p/android/issues/detail?id=23203

Чтобы избежать этой проблемы, попробуйте скомпилировать приложение с помощью API 21. Обратитесь к документации по IDE, чтобы узнать, как работать с различными версиями ОС.

person souldealer_B317    schedule 23.09.2016