Я использую 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.
Вы можете использовать систему 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
Я не знаком с 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
Надеюсь, что это указывает вам в правильном направлении.
Решение, которое работает для меня (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
выполняется, только если есть что построить, но, по крайней мере, достаточно для моих нужд.