Qt 5.2将外部文件包含在Android软件包中?

时间:2013-12-13 18:49:25

标签: qt apk qt5 qmake qt5.1

如何将外部文件包含在“apk”中?

示例:

.pro文件存在的主目录中有“123.txt”。我应该添加什么文件将“123.txt”放入apk。

我尝试过部署,部署文件。但它们只适用于Symbian和Windows CE。

5 个答案:

答案 0 :(得分:11)

有两种方法可以做到,两者都在Qt 5.1 Documentation For Android.上的“移植现有Qt应用程序”中提到

  1. 将它们捆绑成qrc文件(跨平台工作)
  2. 将它们添加到“assets:”目录(特定于Android)
  3. #2:

    构建项目时将创建“assets”目录。我发现最简单的方法是使用“INSTALLS”qmake变量将文件复制到目录中,然后再将其打包到apk中。以下内容来自我制作的项目的qmake文件。请注意,对于INSTALLS,资产的路径读取“/ assets”,而不是您期望的“资产”。 (它实际上最终位于Android构建工作区的子目录中。)

    要从android中的代码访问目录,请使用“assets:”。 (在示例中,/assets/Samples ==> assets:/Samples。)

    # - setup the correct location to install to and load from
    android {
        # android platform
        # From: http://community.kde.org/Necessitas/Assets
        SAMPLES_INSTALL_PATH=/assets/Samples
    } else {
        # other platforms
        SAMPLES_INSTALL_PATH=$$OUT_PWD/Samples
    }
    
    # - setup the 'make install' step
    samples.path = $$SAMPLES_INSTALL_PATH
    samples.files += $$SAMPLE_FILES
    samples.depends += FORCE
    
    INSTALLS += samples
    

答案 1 :(得分:7)

您可以使用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

资产中的文件是只读的。因此,如果要更改它们,应首先将其复制到其他位置:

QFile dfile("assets:/MyFile1");
if (dfile.exists())
{
     dfile.copy("./MyFile1");
     QFile::setPermissions("./MyFile1",QFile::WriteOwner | QFile::ReadOwner);
}

答案 2 :(得分:1)

特定于User2400925

在QT 5.1中,如果文件不存在,我曾经将数据库从Assets文件夹复制到用户的主文件夹。 App可以使用哪些。

您可以浏览this link

答案 3 :(得分:1)

另一种简单的方法:

1)将此字符串添加到.pro

ANDROID_PACKAGE_SOURCE_DIR = $$ PWD / android-sources

2)在proj文件夹中创建android-sources文件夹。把你需要的东西放到android-sources / assets /中。您还可以放置任何其他文件,例如AndroidManifest.xml或android-sources / res / drawable / icon.png,您希望将这些文件复制并更新到目标包中。

答案 4 :(得分:-2)

另一种简单的方法:

  1. 将此字符串添加到.pro
  2. ANDROID_PACKAGE_SOURCE_DIR = $$ PWD / android-sources

    1. 在proj文件夹中创建android-sources文件夹。把你需要的东西放到android-sources / assets /中。您还可以放置任何其他文件,例如AndroidManifest.xml或android-sources / res / drawable / icon.png,您希望将这些文件复制并更新到目标包中。