Перейти к содержанию
Fire Monkey от А до Я
  • 0

Ошибка java.lang.IllegalArgumentException: Unable to load native library... libProject1.so


krapotkin

Вопрос

В процессе разработки столкнулся с очень странной ситуацией, корни которой до сих пор неясны, но решение нашлось.

Итак. Делфи 10.3.3. Чистое приложение - пустая форма и кнопка. Отлично работает на разных устройствах кроме Samsung Galaxy Tab A (2016). Android 5.1.1

Программа падает, не успев даже загрузиться. Любая. При этом она же, скомпилированная на другом компе, запускается нормально. И даже после изменения SDK/NDK на нем, ничего не падает.

LogCat дает крайне странную картину

java.lang.IllegalArgumentException: Unable to load native library: /data/app-lib/com.embarcadero.Project1-1/libProject1.so

Начинаем экспериментировать с SDK, NDK и т.д. Поставил также хотфиксы для 10.3.3.

Сразу скажу, SDK/NDK ставились отдельно через Android studio, не скачивались вместе с Delphi. Не торопитесь бросать чтение на этом месте!)) На другом компе, где все работает, все ставилось точно так же.

Короче, очень много комбинаций версий SDK/NDK проверено.

Результат такой. При постепенном понижении версии NDK все взлетело при NDK v22.

image.png.2316ca48a544f09750f216cb06cbb069.png

При этом версия SDK видимо такого большого влияния не имеет, потому что этот вариант нормально работает

image.png.f6ade1e9696c0606c1aa1b5022f6541d.png

Повторюсь. На других устройствах все работало и на более новых Ndk. Xiaomi Mi Pad4 , Samsung Galaxy Tab A (2019), Xiaomi Redmi 5 и 5Plus

 

Спасибо за участие и помощь в разборе завалов @Andrey Efimov

 

Изменено пользователем krapotkin
Ссылка на комментарий

Рекомендуемые сообщения

  • 0

У меня эта же ошибка выскакивает у пользователей и на моем тестовом телефоне с андроид 6, и на некоторых 5х. Самое интересное, что при установке по поводу из Дельфи, этой же сборки- все нормально. Нашел несколько тем на форуме Дельфи ( андр 5 - крах и т.д.) везде спасает даунгрейд ndk ( для 5.1 до 21) сейчас тоже буду подбирать. 

Ссылка на комментарий
  • 0

У меня похожая проблема. Xiaomi Redmi 5А Android 8.1. Дельфи 10.3.3. Как исправить не знаю.:(

java.lang.UnsatisfiedLinkError: Unable to load native library "/data/app/com.embarcadero.PublicRadio-4y7RRJgE_6Kqam1AqOIbFQ==/lib/arm64/libPublicRadio.so": null
    at android.app.NativeActivity.onCreate(NativeActivity.java:174)
    at com.embarcadero.firemonkey.FMXNativeActivity.onCreate(FMXNativeActivity.java:106)
    at android.app.Activity.performCreate(Activity.java:7088)
    at android.app.Activity.performCreate(Activity.java:7079)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1215)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2895)
    at android.app.ActivityThread.-wrap11(Unknown Source:0)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1616)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:176)
    at android.app.ActivityThread.main(ActivityThread.java:6651)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:824)

 

ndk.jpg

Ссылка на комментарий
  • 0
5 минут назад, krapotkin сказал:

на 10.3.3 и Redmi 5А все абсолютно штатно шло, проверял

На скриншоте вкладка SDK Android 64-bit, 5А - старый, 32-битный

А галочка в настройках вроде должна ему помочь Generate Android App Bundle file (arm + arm64) = true?

Еще заметила у вас ошибка IllegalArgumentException, а у меня UnsatisfiedLinkError. Не понятно...

Ссылка на комментарий
  • 0

А как правильно добавить SO файлы?

The BASS libraries (libbass.so) aren't included in that APK file - they should be alongside the libPublicRadio.so files under the lib folder. I'm not a Delphi user myself, so I'm afraid I'm unfamiliar with how you should do this but you basically need to tell it to include the BASS libraries in your app.

Добавила как на картинке. Что упущено?

 

bass.jpg

Ссылка на комментарий
  • 0
  • Модераторы

Обратите внимание на конечные пути (Remote Path). Цитата, которую вы привели, как раз говорит вам "they should be alongside the libPublicRadio.so files under the lib folder.", т.е. для файлов библиотеки должны быть указаны те же пути, что и для libPublicRadio.so.

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...