3

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

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

java.lang.UnsatisfiedLinkError: dlopen failed: /data/app/com.XXX.XXX-2/lib/arm/libiconv.so: has text relocations

ответ

5

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

Библиотека не загружена из-за ее перемещения текста.

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

Первый доклад: https://code.google.com/p/android/issues/detail?id=23203

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

Смежные вопросы