2014-12-13 3 views
1

* Пожалуйста, не отвечайте на основной учебник по JNI и общей библиотеке. Это случается СКОРО!java.lang.UnsatisfiedLinkError: findLibrary возвращается null - бывает RARELY

У меня есть аналогичная проблема с findLibrary returned null happened sometimes. Но это случается редко.

java.lang.UnsatisfiedLinkError: Не удалось загрузить хххх: findLibrary возвращается нуль

Я никогда не видел его на моих устройствах - 12 устройств с различными версиями андроида. Он отображается только в отчете о сбое.

Я думаю, что это может быть ошибка установки пакета на Android, потому что я даже видел некоторые отчеты о сбоях, говорящие FileNotFoundException в XML-файле, содержащемся в apk, очевидно!

Но я не уверен. Есть ли у кого правильный ответ?

+0

Ошибки также видны в отчете о сбое. Это может быть связано с проблемами памяти? java.lang.UnsatisfiedLinkError: Не удается загрузить библиотеку: link_image [1935]: 1299 недостающих основных таблиц – Springwalk

ответ

1

У вас есть дополнительная информация о устройствах, к которым относится ваше приложение? модель устройства/версия Android? Какую версию NDK вы используете?

Вопрос здесь Cannot load library: link_image[1935]: 1299 missing essential tables. Это означает, что Bionic linker не может загрузить вашу библиотеку или одну из ее зависимостей, потому что ей не хватает .strtab или .symtab.

Вы можете проверить depencies и символы ваших LIBS с помощью readelf или моего приложения для Android: https://play.google.com/store/apps/details?id=com.xh.nativelibsmonitor.app&hl=en

Может быть, один из зависимостей перечисленных (находится в DT_NEEDED части вашей библиотеки) не доступный в целевой системе или лишенный его символов. Это может произойти, если вы напрямую используете системные библиотеки, которые не являются частью NDK.

+0

Большое спасибо. 1) Я использую NDK-r9b, 2) различные модели устройств и версию Android. Я думаю, что это не связано с конкретной моделью или версиями. потому что это происходит даже на устройстве, которое я уже тестировал, что это okey. Ошибки случаются так редко по сравнению с количеством открытий. (0.04%) Я думаю, что это может быть связано с ресурсом процесса, потому что устройства, которые он происходит несколько раз, в основном являются устройствами младшего класса. (Penta WS707C, alps i-mobile IQ3 , Samsung GT-S7262, LG-E450, HTC VLE_U). Могу ли я игнорировать это? – Springwalk

+0

Возможно, это происходит из-за сбоев установщика пакетов на этих устройствах из-за нехватки памяти/пространства. Но это не на 100% уверен ... Если вы беспокоитесь об этом, вы все равно можете поймать это исключение UnsatisfiedLinkError и попросите пользователя переустановить приложение, потому что возникла проблема с их системой. – ph0b

+0

Спасибо за ваш комментарий :-D – Springwalk

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