我正在使用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
这些都不能开始工作。我也被this link给了,但它似乎不是特定于Android的。
答案 0 :(得分:5)
您可以使用Qt资源系统。默认情况下,所有Qt应用程序都可以使用":/"来访问qrc文件的内容。前缀或URL方案前缀," qrc:"。
另一种方法是将资源部署到软件包的资产目录中。如果您想要与Android API实现更好的互操作性,这是最佳选择。您可以使用" assets:"访问目录中的所有资源。字首。与qrc不同,此方法不是跨平台解决方案。
在构建项目时,会出现一个名为" assets"的文件夹。在Build-Directory/android-build/
中创建。在资产目录中复制文件后,您可以将这些文件添加到您的专业人员:
deployment.files += MyFile1
deployment.files += MyFile2
...
deployment.path = /assets
INSTALLS += deployment
答案 1 :(得分:1)
我不熟悉qt,但是你将代码所在的计算机上的文件(如音乐或艺术或文本文件)添加到名为assets的目录中。
典型的目录结构可能包含libs,res,src和assets的目录。构建apk的过程将自动获取此文件夹及其中的所有文件并将其包含在apk中。你不能使用shell来查看这些文件。
要访问这些文件,可以通过调用getAssets()在java活动类中执行。如何从您的活动类 打开文件 的示例可能是....
InputStream is = getAssets().open("yourfile.mp3");
http://developer.android.com/reference/android/content/res/AssetManager.html
希望这能指出你正确的方向。
答案 2 :(得分:1)
适合我的解决方案(Qt 5.9.2):
如果您还没有将以下行添加到.pro
文件中,例如自定义清单文件(文件夹名称与pkg_src
无关):
ANDROID_PACKAGE_SOURCE_DIR = $$PWD/pkg_src
相对于.pro文件创建文件夹“pkg_src/assets
”
手动或例如将您需要的文件复制到此文件夹使用QMAKE_POST_LINK
命令在应用程序构建后复制文件。
这不是100%理想,因为QMAKE_POST_LINK
仅在有内容需要时执行,但至少足以满足我的需求。