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

PowerOwl

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

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

  • Посещение

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

    7

Весь контент PowerOwl

  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 А что это значит, Вы уже смотрите сами, так как доступа к Вашему коду я не имею.
  16. А вообще, почему бы Вам не скинуть полностью проект, тогда можно было бы посмотреть, в каком месте возникает ошибка.
  17. Но у меня на десятке на Нокиа всё запускалось и работало. Надо бы действительно протестировать на разных устройствах, но у меня, к сожалению, у компьютера настолько древний процессор, что на нём просто не запускается эмулятор от Android Studio.
  18. Честно, сам понятия не имею, где эмулятор в 10.4. Можно использовать эмуль от Android Studio, там можно и на куче версий андроида проверить(там вроде от 4.4 до 11), и проэмулировать разные устройства, и ещё кучу всяких настроек. Вот ссылка на документацию абракадабры, там вроде всё расписано: https://www.embarcadero.com/starthere/xe7/mobdevsetup/android/en/creating_an_android_emulator.html Хотя я у себя не нашёл эмулятора, может его вырезали в новых версиях RAD Studio.
  19. На шестёрке все ещё падает.
  20. Ну так эмуляторы ведь есть.
  21. Протестировал на устройстве с Android 10(Nokia 3.1), всё прекрасно работает. Музыка работает, при сворачивании не падает, с выключенным экраном тоже.
  22. Я попробовал запустить на Android 6.0.1, при старте падает после показа картинки. Однако я не знаю, какой минимальный sdk level у приложения, может оно и не должно запускаться на шестёрке. В любом случае, просто отписался. Хотя в манифесте написано, что minSdkVersion='23', что соответствует Андроид 6
  23. Попробовал удалить все юниты из проекта и создать новые. Пока что проблем нет.
  24. При создании приложения с несколькими формами начала появляться ошибка "[DCC Error] Unit1.pas(167): E2606 Duplicate resource: type RCDATA ID tform1_lgxhdpiph". В самом коде никаких ошибок нет. Подобная ошибка происходила со всеми моими формами, тогда я просто копировал все компоненты с формы, удалял её из проекта, создавал новую, скидывал компоненты туда и копировал весь код. Это помогает на некоторое время, но после внесения изменений в код ошибка появляется снова. Подскажите пожалуйста, где может быть проблема. Rad Studio 10.4.1, Windows 10 X64
  25. Я сейчас заметил, что демо-проект почему-то перестал скачивать, но если заменить ссылку(или код), то всё снова начинает работать. Если перейти в браузере по ссылке по умолчанию, то ошибка "The URL is invalid or expired"
×
×
  • Создать...