3

我正在使用 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 的。

4

3 回答 3

5

您可以使用 Qt 资源系统。默认情况下,所有 Qt 应用程序都可以使用“:/”前缀或 URL 方案前缀“qrc:”访问 qrc 文件的内容。

另一种方法是将资源部署到包的资产目录中。如果您想与 Android API 实现更好的互操作性,这是最佳选择。您可以使用“assets:”前缀访问目录中的所有资源。与 qrc 不同,这种方法不是跨平台的解决方案。

构建项目时,会在Build-Directory/android-build/. 在资产目录中复制文件后,您可以将这些添加到您的专业版:

deployment.files += MyFile1
deployment.files += MyFile2
...
deployment.path = /assets
INSTALLS += deployment
于 2014-05-13T07:26:22.140 回答
1

我对 qt 不熟悉,但是您将诸如音乐或艺术之类的文件或不是代码的文本文件添加到代码所在的计算机上名为 assets 的目录中。

典型的目录结构可能包含 libs、res、src 和 assets 的目录。构建 apk 的过程将自动拾取此文件夹和其中的任何文件并将其包含在 apk 中。您不能使用 shell 来查看这些文件。

要访问这些文件,您可以在 java 活动类中调用 getAssets()。如何从您的活动类中打开文件的示例可能是......

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

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

希望这能为您指明正确的方向。

于 2014-05-12T23:17:25.240 回答
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只有在有东西要构建时才会执行,但至少足以满足我的需要。

于 2017-11-13T13:55:04.353 回答