yandexmobile / yandexmapkit-android

Yandex Map Kit for Android
160 stars 65 forks source link

dlopen failed: libcache_local.so: has text relocations #201

Closed adyach closed 8 years ago

adyach commented 8 years ago

Здравствуйте!

Существует проблема на Android 6 (SDK 23). При попытке загрузить библиотеку cache_local.so происходит UnsatisfiedLinkError: https://gist.github.com/adyach/0aafb6e0737a30b97e77 Кусок из ошибки: Caused by: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/package-1/base.apk"],nativeLibraryDirectories=[/data/app/package-1/lib/arm, /data/app/package-1/base.apk!/lib/armeabi, /vendor/lib, /system/lib]]] couldn't find "libcache.so"

В ходе debug было выяснено, что ваша библиотека обрабатывает ошибку, которая происходит до couldn't find "libcache.so" и выглядит она так: dlopen failed: libcache_local.so: has text relocations

Есть ветка обсуждения и в ней говорится о том, что в pre M это был warning, а в M стал error. https://code.google.com/p/android-developer-preview/issues/detail?id=3028 Вот еще ссылка на то, как пофиксить http://slowbutdeadly.blogspot.ru/2015/09/javalangunsatisfiedlinkerror-dlopen.html

Благодарю.

livotov commented 8 years ago

@adyach наблюдая как Яндекс "выпускает" уже 4 года новый SDK карт для андроида - боюсь что про старый SDK и Android 6 можно забыть (

SukharevPavel commented 8 years ago

@adyach я им писал ещё в сентябре/

При работе с яндекс.картами теперь выдаётся такая ошибка

Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: /data/app/ru.xxx.yyy-1/lib/arm/libcache.so: has text relocations

Похоже, что она появляется при использовании новой версии build-tools. Можете перекомпилировать эту библиотеку или хотя бы выложить на гитхаб исходники? Да, на гитхабе написано, что вы не поддерживаете эту версию, но там же и сказано, что вы будете испралять критические ошибки. Эта ошибка однозначно критическая.

Мне ответили:

Здравствуйте!

Прошу прощения за задержку с ответом.

Версию MapKit, Выложенную на GitHub, на данный момент мы не поддерживаем. Ошибки в данной версии исправляться не будут.

livotov commented 8 years ago

Ну стало быть Яндекс как обычно наврал, что критические ошибки он все же будет исправлять. Впрочем, это не удивительно.

А потом они хотят, чтобы мы поддерживали отечественного производителя, с таким-то отношением к разработчикам :)

scratchboom commented 8 years ago

Кажется, единственный способ это пофиксить - downgrade на targetSdk 22. Но если вы уже зарелизились с targetSdk 23, вас ожидает полный фейл: Google Play не примет ваш apk: http://joxi.ru/Y2LYvDdUnezelA.jpg Эту конфигурацию невозможно опубликовать по следующим причинам: Если в прошлом наборе APK-файлов использовались разрешения Android M (SDK 23 и более поздних версий), то в новом не должно быть устаревших разрешений (SDK 22 и более ранних версий). Эта проблема может возникнуть при переходе с версии 1 (SDK 23) на версию 2 (SDK 22).

mksaint13 commented 8 years ago

Данная ошибка исправлена в новой версии.