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

PowerOwl

Пользователи
  • Постов

    42
  • Зарегистрирован

  • Посещение

  • Победитель дней

    6

PowerOwl стал победителем дня 9 июля 2021

PowerOwl имел наиболее популярный контент!

Информация о PowerOwl

  • День рождения 12 декабря

Информация

  • Пол
    Мужчина

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

  1. Решение: https://stackoverflow.com/questions/54825547/delphi-10-3-1-android-service-hangs-on-system-initunits Также нужно удалить из uses сервиса всё, что начинается на FMX(например FMX.Types, как сказано в ответе на вопрос по ссылке)
  2. Добрый день. У моего тестового приложения под андроид есть сервис com.embarcadero.services.Project2. Код в сервисе уже полностью готов, однако при попытке запустить сервис из формы в приложении с помощью TLocalServiceConnection.StartService('Project2'); Приложение останавливается с ошибкой Segmentation Fault(11) в модуле FMX.Platform.Android Я не знаю, в чём может быть дело. Даже если поставить точку остановки на Application.Run в Project2.so, то всё равно происходит это. Если поставить точку остановки на строку после запуска сервиса из формы, то приложение доходит до неё без проблем. Вроде бы рассказал всё, что может помочь. Прикладывать код сервиса не вижу смысла, так как ошибка происходит даже не дойдя до инициализации сервиса. Но если понадобится какая-то дополнительная информация, могу предоставить. P.S. Delphi 10.4.2 Community Edition
  3. Логи: FATAL EXCEPTION: main Process: com.embarcadero.PublicRadio, PID: 9717 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.embarcadero.PublicRadio/com.embarcadero.firemonkey.FMXNativeActivity}: java.lang.IllegalArgumentException: Unable to load native library: /data/app/com.embarcadero.PublicRadio-1/lib/arm/libPublicRadio.so at android.app.ActivityThread.performLaunchActivity(ActivityThread.java) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java) at android.app.ActivityThread.access$1100(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java) at android.os.Handler.dispatchMessage(Handler.java) at android.os.Looper.loop(Looper.java) at android.app.ActivityThread.main(ActivityThread.java) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java) Caused by: java.lang.IllegalArgumentException: Unable to load native library: /data/app/com.embarcadero.PublicRadio-1/lib/arm/libPublicRadio.so at android.app.NativeActivity.onCreate(NativeActivity.java) at com.embarcadero.firemonkey.FMXNativeActivity.onCreate(FMXNativeActivity.java:135) at android.app.Activity.performCreate(Activity.java) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java) ... 10 more Библиотека libPublicRadio.so по пути /data/app/com.embarcadero.PublicRadio-1/lib/arm присутствует, значит что-то не так с самой библиотекой. Тут уже можно только гадать. Я бы на вашем месте попробовал создать новый проект, перенести в него код и компоненты со старого и попробовать скомпилировать сразу под Андроид-32.
  4. Давайте apk. По вот этой строчке видно, что файлы он ищёт в каталоге для 64-битных устройств. На 32-битных всё должно работать.
  5. Если падает, значит скорее всего какие-то файлы не задеплоились. По всей видимости вы напрочь проигнорировали совет Андрея Ефимова, или же просто даже не читали, что он написал. Откройте полученный apk через любой архиватор и проверьте, чтобы в каталогах были все необходимые файлы. Если нет, значит разработчики библиотеки BASS посчитали, что платформа armeabi больше не является актуальной. В каталоге armeabi должна быть заглушка libProject1.so
  6. Сам не обратил внимания на это. Для Ingalime: Ваш apk внутри выглядит так: В директории lib должны находится библиотеки необходимые приложению. Для каждой архитектуры процессоров нужны свои библиотеки. Следовательно они рассортированы по каталогам: Внутри каталога arm64-v8a всё необходимое присутствует: Соответственно, при установке приложения на 64-битное устройство, установщик будет доставать файлы отсюда. Однако, если устанавливать на 32-битное устройство, то установщик будет доставать файлы уже из каталога armeabi-v7a: В этом каталоге есть библиотека BASS, значит вы её всё-же задеплоили. Однако других файлов приложения тут нет, из-за чего оно и крашится при запуске.
  7. Всё еще вылетает. Вот логи снятые с logcat: Вам следует сделать дебаг-версию вашего апк и проверить на любом эмуляторе андроида, создав образ 32-битной системы. Если получите ошибку не в юните вашего приложения, тогда с помощью брейкпоинтов(клик слева от номера строки) искать место, где происходит ошибка.
  8. Android 6.0.1 - падение. А вы хоть разобрались с Deployment? Я так понимаю, что приложение падает от того, что пытается найти файлы библиотеки BASS для armeabi-v7a, но не находит. А на 64-битных устройствах всё работает от того, что им нужны файлы для arm64-v8a, которые вы задеплоили.
  9. Несколькими строчками выше этого пункта есть пункт, где в Remote Path указано library\lib\armeabi-v7a. Попробуйте вручную указать этот же путь.
  10. На Ноут 10+ под управлением ОС Android 11 всё исправно работает, так что лучше всё же скомпилировать 32-битный апк, хотя бы ради интереса.
  11. У меня, кстати, появилось предположение, почему прога запустилась у меня на Android 10, но на Android 6.0.1 и у Олега Киреева на Android 10 - нет. Возможно, это связано с тем, что Вы скомпилировали приложение только под Android 64. У моего телефона процессор 64-разрядный(Samsung Exynos 7 Octa(5433)), но, как сказала Aida64, 32-bit Mode. У Олега Киреева процессор Samsung Exynos 7 Octa 7870, тоже 64-разрядный, но, поскольку разница между датами выхода чипов всего 2 года, то, возможно, он тоже работает в 32-битном режиме. На Нокиа 3.1, на которой всё работало, стоит 64-разрядный Mediatek MT6750n. Сейчас ещё проверю на Самсунг Ноут 10+ с чипом Qualcomm Snapdragon 855 в 64-разрядном режиме. Вот тут было обсуждение по поводу устройства на базе такого же чипа, как у Олега, где оказалось, что ЦПУ поддерживает 64-битные инструкции, но прошивка - нет: https://stackoverflow.com/questions/49184689/why-does-my-android-device-with-armv8-based-cpu-cores-exynos-7-octa-7870-not-s
  12. Крайне сильно поддерживаю. У меня самого сейчас в проекте настал момент, когда нужно написать службу переднего фона, а инфы в интернете централизованной нет.
  13. Проблемы появились.? Но всё же я нашёл решение. Короче. Всё дело в том, что Дельфя почему-то решила, что одной директивы {$R *.LgXhdpiPh.fmx ANDROID} ей мало, и почему-то решила добавить ещё по одной на каждый юнит. Решение простое:
  14. Попробуйте в BIOS включить "Secure virtual machine mode". И напишите, какой у Вас процессор. Можете выложить хотя бы .pas файл(-ы), чтобы хоть примерно представлять, в чём ошибка. Я выложил логи снятые с logcat, можете сами посмотреть, в чём там может быть проблема.
  15. В общем, посмотрел я логи Вашего приложения через logcat. К ошибке приводило это: FATAL EXCEPTION: main Process: com.online.PublicRadio, PID: 25974 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.online.PublicRadio/com.embarcadero.firemonkey.FMXNativeActivity}: java.lang.IllegalArgumentException: Unable to find native library: PublicRadio at android.app.ActivityThread.performLaunchActivity(ActivityThread.java) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java) at android.app.ActivityThread.access$1100(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java) at android.os.Handler.dispatchMessage(Handler.java) at android.os.Looper.loop(Looper.java) at android.app.ActivityThread.main(ActivityThread.java) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java) Caused by: java.lang.IllegalArgumentException: Unable to find native library: PublicRadio at android.app.NativeActivity.onCreate(NativeActivity.java) at com.embarcadero.firemonkey.FMXNativeActivity.onCreate(FMXNativeActivity.java:135) at android.app.Activity.performCreate(Activity.java) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java) ... 10 more А что это значит, Вы уже смотрите сами, так как доступа к Вашему коду я не имею.
×
×
  • Создать...