【问题标题】:Adding extra files to an Android Application向 Android 应用程序添加额外文件
【发布时间】:2014-05-12 22:38:52
【问题描述】:

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

【问题讨论】:

    标签: android c++ qt qt-creator qt5.2


    【解决方案1】:

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

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

    当您构建项目时,会在Build-Directory/android-build/ 中创建一个名为“assets”的文件夹。将您的文件复制到资产目录中后,您可以将这些添加到您的专业版中:

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

    【讨论】:

    • 我不知道这是否正是我想要的,因为我试图将它添加到 qrc 文件中,但它是一个脚本,所以我不知道如何使用它。
    • 这对我不起作用(Windows 主机),不确定是文件没有被复制还是 androiddeployqt 只是在写入之前删除了文件夹。
    【解决方案2】:

    我不熟悉 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

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

    【讨论】:

    • 感谢您的帖子,这似乎对您有所帮助。
    【解决方案3】:

    适合我的解决方案(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 仅在需要构建时才会执行,但至少足以满足我的需求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-15
      • 2022-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多