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

PowerOwl

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

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

  • Посещение

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

    7

Активность репутации

  1. Like
    PowerOwl получил реакцию от Александр Елсуков в Ошибка "Duplicate resource: type RCDATA ID tform1_lgxhdpiph"   
    Проблемы появились.?
    Но всё же я нашёл решение.  Короче.
    Всё дело в том, что Дельфя почему-то решила, что одной директивы
    {$R *.LgXhdpiPh.fmx ANDROID} ей мало, и почему-то решила добавить ещё по одной на каждый юнит.
    Решение простое:

     
  2. Like
    PowerOwl отреагировална qz5 в Вышла Community Edition версии 10.4.2 (Delphi & C++Builder)   
    Официальная новость - Delphi & C++Builder FREE Community Editions Updated to Version 10.4.2 Are Now Available!
    Пока надо будет получать для этой версии новые ключи, старые от 10.3.3 не подходят
     
  3. Like
    PowerOwl отреагировална Pax Beach в Использование нативных LocalBroadcastManager и BroadcastReceiver   
    Из PlatformSDK (PlatformSDKs\android-sdk-windows\sources\android-23\android\support\v4\content\) портировал в Delphi класс TJLocalBroadcastManager.
    Это очень полезный класс, если вы не хотите рассылать сообщения по всей системе, а есть необходимость общаться только внутри приложения или между хост-приложением и сервисом.
    Во вложении сам класс, в своем приложении убедитесь, что в Target Platforms (Android) → Android → Libraries включена библиотека android-support-v4.dex.jar.
     
    Прилагаю пример, для изучения и использования в работе, который демонстрирует работу обычного BroadcastReceiver и LocalBroadcastReceiver.
    В примере демонстрируется работа сообщений в приложении и сервисе. Сначала делаем build проекта LBCRService, потом будет доступна возможность собрать LocalBCR.
    Собираю в Berlin 10.1, но на младших версиях тоже должно работать, по крайней мере в Seatlle.
     
    В реализации методов
    procedure RegisterReceiver(); procedure UnRegisterReceiver(); необходимо снять комментарий с соответствующих строчек, в зависимости от того, какой тип ресивера вы хотите использовать.
     
     
    Androidapi.JNI.LocalBroadcastManager.pas.zip
    LocalBroadCastReceiver.zip
  4. Like
    PowerOwl отреагировална ruslan в Друзья, дайте совет как быть   
    купите лицензию на абракадабру !))
  5. Like
    PowerOwl отреагировална MargoOl в Друзья, дайте совет как быть   
    Подскажите в чем хранить небольшие сбережения, в долларах, рублях или купить на все деньги гречневой крупы?
  6. Thanks
    PowerOwl отреагировална Евгений Корепов в Выполнение регулярных операций в сервисе - статистика   
    Попробовал AlarmManager. Интервал 30 секунд.
    Запускал сервис следующим образом:
    procedure TFormMain.InitServiceAlarmManager; var Intent: JIntent; PendingIntent: JPendingIntent; ATimerInterval : Integer; begin ATimerInterval:=30; Intent := TJIntent.Create; Intent.setClassName(TAndroidHelper.Context, StringToJString('com.embarcadero.services.ServiceTest090Service')); PendingIntent := TJPendingIntent.JavaClass.getService(TAndroidHelper.Context, 1, Intent, 0); TAndroidHelper.AlarmManager.&setRepeating(TJAlarmManager.JavaClass.RTC_WAKEUP, getTimeAfterInSecs(ATimerInterval), ATimerInterval * 1000, PendingIntent); end; procedure TFormMain.FormCreate(Sender: TObject); begin InitServiceAlarmManager; // FService:=TLocalServiceConnection.Create; // FService.StartService('ServiceTest090Service'); end; function TFormMain.getTimeAfterInSecs(Seconds: Integer): Int64; Var Calendar: JCalendar; begin Calendar := TJCalendar.JavaClass.getInstance; Calendar.add(TJCalendar.JavaClass.SECOND, Seconds); Result := Calendar.getTimeInMillis; end; end. Результат - та же хрень, вид сбоку:
    2017-02-25 21:35:40 195.22.104.13 AlarmManager в сервисе. Запрос раз в 0 сек. 2017-02-25 21:35:40 195.22.104.13 AlarmManager в сервисе. Запрос раз в 0 сек. 2017-02-25 21:34:40 195.22.104.13 AlarmManager в сервисе. Запрос раз в 0 сек. 2017-02-25 21:34:40 195.22.104.13 AlarmManager в сервисе. Запрос раз в 0 сек. 2017-02-25 21:33:38 195.22.104.13 AlarmManager в сервисе. Запрос раз в 0 сек. 2017-02-25 21:33:10 195.22.104.13 AlarmManager в сервисе. Запрос раз в 0 сек. 2017-02-25 21:32:45 195.22.104.13 AlarmManager в сервисе. Запрос раз в 0 сек. 2017-02-25 21:32:10 195.22.104.13 AlarmManager в сервисе. Запрос раз в 0 сек. 2017-02-25 21:32:10 195.22.104.13 AlarmManager в сервисе. Запрос раз в 0 сек. 2017-02-25 21:31:06 195.22.104.13 AlarmManager в сервисе. Запрос раз в 0 сек. 2017-02-25 21:30:59 195.22.104.13 AlarmManager в сервисе. Запрос раз в 0 сек. А тут я заблокировал телефон кнопкой и началось.... 2017-02-25 21:30:06 195.22.104.13 AlarmManager в сервисе. Запрос раз в 0 сек. 2017-02-25 21:29:36 195.22.104.13 AlarmManager в сервисе. Запрос раз в 0 сек. 2017-02-25 21:29:06 195.22.104.13 AlarmManager в сервисе. Запрос раз в 0 сек. 2017-02-25 21:28:36 195.22.104.13 AlarmManager в сервисе. Запрос раз в 0 сек. 2017-02-25 21:28:06 195.22.104.13 AlarmManager в сервисе. Запрос раз в 0 сек. 2017-02-25 21:27:36 195.22.104.13 AlarmManager в сервисе. Запрос раз в 0 сек. 2017-02-25 21:27:06 195.22.104.13 AlarmManager в сервисе. Запрос раз в 0 сек. 2017-02-25 21:26:36 195.22.104.13 AlarmManager в сервисе. Запрос раз в 0 сек. 2017-02-25 21:26:07 195.22.104.13 AlarmManager в сервисе. Запрос раз в 0 сек. 2017-02-25 21:25:36 195.22.104.13 AlarmManager в сервисе. Запрос раз в 0 сек. 2017-02-25 21:25:06 195.22.104.13 AlarmManager в сервисе. Запрос раз в 0 сек. Оставлю на ночь, посмотрим что будет....
  7. Thanks
    PowerOwl получил реакцию от Ingalime в Android 10 и муз.плеер   
    Логи:
    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.
  8. Like
    PowerOwl отреагировална Brovin Yaroslav в Правила публикации сообщений на этом форуме   
    За постоянное нарушение этих правил пользователь может быть забанен, в том числе по адресу IP.Если тема оформлена не правильно, то она будет закрыта.

    1. Общие правила
    Перед тем как создать тему по вашему вопросу, воспользуйтесь поиском по форуму. Форум рассчитан на консультирования применения FireMonkey, решения прикладных задач с использованием FireMonkey.  Запрещено публиковать найденные ошибки. Для публикации и решения вопросов ошибок FMX существует специальный ресурс Embarcadero Quality Central. Запрещается обсуждение вопросов не связанных с разработкой и FireMonkey Запрещается использовать нецензурные выражения в тексте и заголовке сообщений 2. Создание темы
    Одна тема — один вопрос. Два вопроса в одной теме задавать запрещено. Запрещено создавать несколько тем для одного вопроса. Тема должна быть размещена в наиболее подходящем для нее по смыслу разделе. Если такового не имеется, то размещать тему на свое усмотрение. 2.1 Каким должен быть заголовок темы?
    Вопрос должен быть сформулирован в заголовке темы. Заголовок темы должен содержать не менее 4 слов. Заголовок темы должен формулировать вопрос как можно подробнее. 2.2. Каким должен быть текст вопроса?
    Текст вопроса нужно начать с указания используемой версии RAD Studio, Версии ОС и модель устройства (если речь идет о мобильной разработке) Текст темы должен максимально подробно описывать суть вопроса. Текст темы должен по возможности содержать иллюстрации.  Иллюстрации должны быть не от балды, а иллюстрировать текущее состояние вопроса: то есть, наглядно показывать факт существования описанного поведения. Если ваш вопрос касается конкретного случая разработки, нужно прикрепить проект (только исходные коды в zip архиве) к сообщению. Вставляя код в текст темы, позаботьтесь о том, чтобы он соответствовал стандарту «Руководство по оформлению кода на Pascal» (это можно сделать, при помощи средств автоматического форматирования кода, которые есть в RAD Studio Edit -> Format Source или Ctrl + D), а также не забудьте использовать тег «Код» при оформлении кода в сообщении. 3. Ответы в темы
    Задавать свой вопрос в чужой теме можно только в случае если ваш вопрос совпадает с вопросом в теме. Отвечать можно на любые темы. При ответе старайтесь подробно описывать решение вопроса. Избегайте лишних сообщений не касающихся решения вопроса.
  9. Thanks
    PowerOwl получил реакцию от Ingalime в Android 10 и муз.плеер   
    Давайте apk. По вот этой строчке видно, что файлы он ищёт в каталоге для 64-битных устройств. На 32-битных всё должно работать.
  10. Thanks
    PowerOwl получил реакцию от Ingalime в Android 10 и муз.плеер   
    Сам не обратил внимания на это.
    Для Ingalime:
    Ваш apk внутри выглядит так:

    В директории lib должны находится библиотеки необходимые приложению. Для каждой архитектуры процессоров нужны свои библиотеки. Следовательно они рассортированы по каталогам:

    Внутри каталога arm64-v8a всё необходимое присутствует:

    Соответственно, при установке приложения на 64-битное устройство, установщик будет доставать файлы отсюда.
    Однако, если устанавливать на 32-битное устройство, то установщик будет доставать файлы уже из каталога armeabi-v7a:

    В этом каталоге есть библиотека BASS, значит вы её всё-же задеплоили. Однако других файлов приложения тут нет, из-за чего оно и крашится при запуске.
  11. Thanks
    PowerOwl получил реакцию от Ingalime в Android 10 и муз.плеер   
    Android 6.0.1 - падение. А вы хоть разобрались с Deployment? Я так понимаю, что приложение падает от того, что пытается найти файлы библиотеки BASS для armeabi-v7a, но не находит. А на 64-битных устройствах всё работает от того, что им нужны файлы для arm64-v8a, которые вы задеплоили.
  12. Like
    PowerOwl получил реакцию от Andrey Efimov в Android 10 и муз.плеер   
    Несколькими строчками выше этого пункта есть пункт, где в Remote Path указано library\lib\armeabi-v7a. Попробуйте вручную указать этот же путь.
  13. Like
    PowerOwl отреагировална Andrey Efimov в Android 10 и муз.плеер   
    Вот что сейчас я вижу на Delphi 10.4.2 для чистого проекта Project1 и сервиса:
    Релиз для 32 бит (Application store/Development):
    armeabi - заглушка libProject1.so. armeabi-v7a - проект libProject1.so, сервис и т.д. mips - заглушка libProject1.so. Релиз для 64 бит (Development, для Application store создаётся aab файл(который может включать в себя 32 битную версию))
    arm64-v8a - проект libProject1.so, сервис и т.д. Библиотеку bass я бы положил только в armeabi-v7a (для 32 бит) и arm64-v8a (для 64 бит).
    Эти галочки управляются из блока Project Manager, в зависимости от выбранной битности и конфигурации(Debug/Release и Application store/Development). Поэтому, если вы снимали их самостоятельно (через Deployment Manager), то рекомендую поставить их обратно, т.е. вернуть в дефолтное состояние.
    Повторюсь, сейчас нужно собрать 32 битную версию и выложить сюда для теста (возможно, PowerOwl или Олег смогут проверить).
     
     
    p.s. Вопрос, какую версию студии вы используете?
  14. Thanks
    PowerOwl получил реакцию от Ingalime в Android 10 и муз.плеер   
    У меня, кстати, появилось предположение, почему прога запустилась у меня на 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
  15. Thanks
    PowerOwl получил реакцию от Ingalime в Android 10 и муз.плеер   
    На Ноут 10+ под управлением ОС Android 11 всё исправно работает, так что лучше всё же скомпилировать 32-битный апк, хотя бы ради интереса.
  16. Like
    PowerOwl отреагировална Andrey Efimov в Android 10 и муз.плеер   
    но при этом подсовываете туда библиотеку bass...
    В этих папках (кроме arm64-v8a (для 64 бит) и armeabi-v7a (для 32 бит)) должны лежать заглушки, которые в случае несовместимости с девайсом буду выдавать сообщение типа такого "Application does not support this device".
    Собственно, PowerOwl, уже сделал предположение.
     
     
  17. Like
    PowerOwl получил реакцию от Andrey Efimov в Android 10 и муз.плеер   
    У меня, кстати, появилось предположение, почему прога запустилась у меня на 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
  18. Like
    PowerOwl получил реакцию от Ingalime в Ошибка "Duplicate resource: type RCDATA ID tform1_lgxhdpiph"   
    Проблемы появились.?
    Но всё же я нашёл решение.  Короче.
    Всё дело в том, что Дельфя почему-то решила, что одной директивы
    {$R *.LgXhdpiPh.fmx ANDROID} ей мало, и почему-то решила добавить ещё по одной на каждый юнит.
    Решение простое:

     
  19. Like
    PowerOwl получил реакцию от Ingalime в Android 10 и муз.плеер   
    Крайне сильно поддерживаю. У меня самого сейчас в проекте настал момент, когда нужно написать службу переднего фона, а инфы в интернете централизованной нет.
  20. Like
    PowerOwl отреагировална Ingalime в Android 10 и муз.плеер   
    Cкриншот деплоя 64 бит. 32 бит я не компилировала вообще.
    С дебагом у меня тоже были проблемы. Компилятор ембаркадеро упорно писал что не может распознать Readmi5A и отваливался.
    Компилировала в релизе с ShowMessage-ми в поисках ошибок.
    Если у кого есть терпение на скачивание то ссылка на весь проект: http://nsnllc.um.la/delphi821FMX.zip
    Проект у меня по пути C:\Users\Lena\Documents\Embarcadero\Studio\Projects\delphi82
    Хотелось бы по окончании дискуссии, чтобы на этом форуме кто-то из специалистов выложил статью как правильно создать службу переднего плана в дельфи.
    Служба весьма полезная, но централизованной информации нет и вообще все странно работает - в одних версиях нормально, в других падение.
     

  21. Thanks
    PowerOwl получил реакцию от Ingalime в Android 10 и муз.плеер   
    Попробуйте в BIOS включить "Secure virtual machine mode". И напишите, какой у Вас процессор.
    Можете выложить хотя бы .pas файл(-ы), чтобы хоть примерно представлять, в чём ошибка. Я выложил логи снятые с logcat, можете сами посмотреть, в чём там может быть проблема.
  22. Thanks
    PowerOwl получил реакцию от Ingalime в Android 10 и муз.плеер   
    Но у меня на десятке на Нокиа всё запускалось и работало. Надо бы действительно протестировать на разных устройствах, но у меня, к сожалению, у компьютера настолько древний процессор, что на нём просто не запускается эмулятор от Android Studio.
  23. Thanks
    PowerOwl получил реакцию от Ingalime в Android 10 и муз.плеер   
    Честно, сам понятия не имею, где эмулятор в 10.4. Можно использовать эмуль от Android Studio, там можно и на куче версий андроида проверить(там вроде от 4.4 до 11), и проэмулировать разные устройства, и ещё кучу всяких настроек.
    Вот ссылка на документацию абракадабры, там вроде всё расписано: https://www.embarcadero.com/starthere/xe7/mobdevsetup/android/en/creating_an_android_emulator.html
    Хотя я у себя не нашёл эмулятора, может его вырезали в новых версиях RAD Studio.
  24. Thanks
    PowerOwl получил реакцию от Ingalime в Android 10 и муз.плеер   
    На шестёрке все ещё падает.
  25. Thanks
    PowerOwl получил реакцию от Ingalime в Android 10 и муз.плеер   
    Ну так эмуляторы ведь есть.
×
×
  • Создать...