Добавление дополнительных файлов в приложение Android

Я использую qt 5.2 и пытаюсь выяснить, как иметь дополнительные файлы вместе с моим приложением при его установке. Я хочу быть в состоянии использовать adb shell а потом cd в data/data/org.qtproject.example.myProjectPath/, Я хотел бы найти этот файл где-нибудь. Я уже отправил вопрос об этом, но не смог найти ответы. Некоторые люди отвечали, и там упоминалось об активах, но qt 5.2 не создает файл ресурсов. Мне также сказали попробовать что-то вроде

deployment.files += program
deployment.path = /assets
INSTALLS += deployment

а также

documentation.path = /usr/local/program/doc
documentation.files = docs/*
INSTALLS += documentation

Ни один из них я не мог получить на работу. Мне также дали эта ссылка но это не похоже на Android.

3

Решение

Вы можете использовать систему Qt Resource. По умолчанию все приложения Qt могут получить доступ к содержимому файла qrc, используя префикс «: /» или префикс схемы URL, «qrc:».

Другой подход заключается в развертывании ресурсов в каталоге ресурсов пакета. Это лучший вариант, если вы хотите добиться лучшей совместимости с API-интерфейсами Android. Вы можете получить доступ ко всем ресурсам в каталоге, используя префикс «assets:». В отличие от qrc, этот подход не является кроссплатформенным решением.

Когда вы создаете свой проект, папка с именем «assets» создается в Build-Directory/android-build/, После копирования ваших файлов в каталог ресурсов вы можете добавить их в свой про:

deployment.files += MyFile1
deployment.files += MyFile2
...
deployment.path = /assets
INSTALLS += deployment
5

Другие решения

Я не знаком с qt, но вы добавляете файлы, похожие на музыкальные, художественные или текстовые файлы, которые не являются кодом, в каталог с именем assets на вашем компьютере, где живет ваш код.

Типичная структура каталогов может иметь каталоги для libs, res, src и assets. Процесс, который создает apk, автоматически подберет эту папку и все файлы в ней и включит ее в apk. Вы не можете использовать оболочку для просмотра этих файлов.

Чтобы получить доступ к этим файлам, вы делаете это в своем классе активности java, вызывая getAssets (). Пример того, как открыть файл из вашего класса активности возможно .. .

InputStream is = getAssets().open("yourfile.mp3");

http://developer.android.com/reference/android/content/res/AssetManager.html

Надеюсь, что это указывает вам в правильном направлении.

1

Решение, которое работает для меня (Qt 5.9.2):

  • добавьте следующую строку в .pro файл, если у вас его еще нет, например, пользовательский файл манифеста (имя папки не имеет значения для pkg_src):

    ANDROID_PACKAGE_SOURCE_DIR = $$PWD/pkg_src
    
  • создать папку «pkg_src/assets«относительно файла .pro

  • скопируйте нужные файлы в эту папку, вручную или, например, с QMAKE_POST_LINK команда, которая копирует файлы туда после сборки приложения.

Это не на 100% идеально, так как QMAKE_POST_LINK выполняется, только если есть что построить, но, по крайней мере, достаточно для моих нужд.

1
По вопросам рекламы [email protected]