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

Andrey Efimov

Модераторы
  • Постов

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

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

    123

Andrey Efimov стал победителем дня 19 октября 2023

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

6 Подписчиков

Информация о Andrey Efimov

Информация

  • Пол
    Мужчина

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

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

  1. Специально сейчас проверил на новом пустом проекте в Delphi 10.4.2. Убирал строку из файла AndroidManifest.template.xml в корне проекта, собрал проект, проверил результат - всё хорошо, строки нет (в шаблоне (в корне проекта), промежуточном (в папке Debug) и итоговом файле AndroidManifest.xml). Перезапустил Студию, собрал проект, проверил результат - всё хорошо, строки нет. Мин. АПИ и целевое задано по умолчанию (строка из промежуточного манифеста): <uses-sdk android:minSdkVersion="23" android:targetSdkVersion="29" /> Проверял вот с такими инструментами (данные из SDK Manager) : p.s. На всякий случай, может поможет, сделать Clean проекта предварительно выбрав целевую платформу Android
  2. Предположу, что проблема всё таки в манифесте и версии SDK. Попробуйте удалить строчку из манифеста: android:requestLegacyExternalStorage="true" и собрать приложение.
  3. Почитайте тут: Android Developers - Docs - Guides: Intents and Intent Filters Android Developers - Docs - Guides:<data> StackOverflow: Android intent filter: associate app with file extension
  4. Using a Custom Set of Java Libraries In Your RAD Studio Android Apps Adding A Java Library to Your Application Using the Project Manager Creating a Native Bridge File for a Java Library
  5. Установить то можно, но только если пользователь подготовлен к этому. Через спец. софт, можно скачать например с Google Play: App Bundle Install (вроде, не помню точно, как называется). На самом деле, подобного софта много. Т.к. установка aab не из маркета требует подготовки, то само собой лучше выкладывать на своём сайте сразу apk файлы.
  6. Restriction on non-resettable device identifiers В этом разделе: "Starting in Android 10, apps must have the READ_PRIVILEGED_PHONE_STATE privileged permission in order to access the device's non-resettable identifiers, which include both IMEI and serial number. Caution: Third-party apps installed from the Google Play Store cannot declare privileged permissions." Best practices for working with Android identifiers
  7. Посмотрите эту страницу документации: Configuring your app for multi-window Mode
  8. Оба apk файла собраны для 64-бит. Вам нужно собрать 32 битную версию: Честно говоря, я не знаю как вам ещё объяснить это... (раз проблемы возникают даже на таком этапе, то я обязан сообщить, что на форуме существует раздел: Ищу подрядчика) Перед тем как вы соберётесь выложить сюда собранный 32-битный apk, проверьте его, открыв например в винраре. Зайдите в папку "lib" и проверьте каждую папку. Выше я уже написал, что будет внутри каждой папки для 32-битного apk и для 64-битного apk (https://fire-monkey.ru/topic/7447-android-10-и-музплеер/?do=findComment&comment=43249). Т.о. в 32-битном apk должна получиться примерно такая структура (на примере Project1): armeabi - заглушка libProject1.so. armeabi-v7a - ваш проект libProject1.so, сервис, библиотека bass и т.д. mips - заглушка libProject1.so. p.s. По поводу логов, то они сообщают о том, что не найдена библиотека PublicRadio (что собственно подтверждается и текстом ошибки и вскрытием apk файла, в нем библиотека есть только в папке для 64-бит, т.е. apk файл собран не для 32-бит).
  9. Вот что сейчас я вижу на 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. Вопрос, какую версию студии вы используете?
  10. но при этом подсовываете туда библиотеку bass... В этих папках (кроме arm64-v8a (для 64 бит) и armeabi-v7a (для 32 бит)) должны лежать заглушки, которые в случае несовместимости с девайсом буду выдавать сообщение типа такого "Application does not support this device". Собственно, PowerOwl, уже сделал предположение.
  11. По какой причине вы сняли галочки с записей связанных с libnative-activity.so?
  12. Скриншот Deployment Manager'а в "студию" (для 32 и 64 битной версии). Отсортируйте по столбцу Local Name.
  13. У меня на устройстве с Андроид 11 и эмуляторе с Андроид 7.1.2 приложение не падает. По теме, делайте дебаг версию и ищите устройство на котором падает, запускайте monitor.bat и приложение, снимайте логи и выкидывайте их сюда. Это нужно сделать как минимум для того чтобы убедиться в ваших догадках (что происходит падение из-за сервиса). Так же попробуйте вынести в кнопку код запуска сервиса. Документация по Foreground service: https://developer.android.com/guide/components/foreground-services
  14. Есть два варианта: 1) Добавить в промежуточном манифесте (находится тут: Project\Android\Debug\AndroidManifest.xml) Находим: <service android:exported="false" android:name="com.embarcadero.services.serPublic" /> Заменяем на: <service android:exported="false" android:foregroundServiceType="mediaPlayback" android:name="com.embarcadero.services.serPublic" /> Делаем деплой проекта. 2) Прописать сервис в шаблоне (находится тут: Project\AndroidManifest.template.xml) Примерно вот так. Находим: <%services%> Заменяем на: <service android:exported="false" android:foregroundServiceType="mediaPlayback" android:name="com.embarcadero.services.serPublic" /> <service android:exported="false" android:name="com.embarcadero.firebase.messaging.ProxyFirebaseMessagingService"> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT" /> </intent-filter> </service> <service android:exported="true" android:name="com.google.firebase.messaging.FirebaseMessagingService"> <intent-filter android:priority="-500"> <action android:name="com.google.firebase.MESSAGING_EVENT" /> </intent-filter> </service> <service android:exported="false" android:name="com.google.firebase.components.ComponentDiscoveryService"> <meta-data android:name="com.google.firebase.components:com.google.firebase.iid.Registrar" android:value="com.google.firebase.components.ComponentRegistrar" /> </service> Делаем сборку и деплой. p.s. Возможно есть ещё способы, я давненько не касался темы сервисов..
×
×
  • Создать...