当前位置:   article > 正文

QT6 android下配置文件打包到APK

QT6 android下配置文件打包到APK

一.遇到问题

   用QT做android开发,生成的apk文件默认不包含程序配置文件和png文件,导致程序在android上无法读取必要的参数和logo,本文主要解决这个问题,并详细讲述QT android 的apk程序打包流程。

二.APK打包流程

1.如何生成APK

  当我们的工程的构建套件选择Android编译器的时候,编译之后Qt会自动为我们生成APK文件。如果是编译并运行,Qt会要求你选择一个匹配的安卓虚拟设备或者真机设备,

它会自动把编译生成的APK安装到你选择的设备中,然后运行。你也可以通过这个来调试程序。

2.APK的生成路径

  默认生成的apk的路径在build下:

  android-build/build/outputs/apk/debug/

  android-build/build/outputs/apk/release/

3.打包文件

  这是本文的重点,如何将资源文件打包进APK中,以及如何通过代码访问。

(1)打包

     要想把一些文件打包进APK,需要在pro文件里面这样写:

dataFiles.files+=src/readme.txt

dataFiles.files+=src/pic.png

dataFiles.path = /assets/data

INSTALLS += dataFiles

        --dataFiles使我们需要添加的资源文件(可能是一个或多个) 的名字,代表所有我们想打包进APK的文件,它只在pro文件

           中使用,所以可以随意命名,只要前后保持一致即可

        --src是一个和pro文件同级的目录,可以将想要打包进APK的文件都放在这个目录下面

        --dataFiles.files可以将想要打包的资源文件都包含进来

        --dataFiles.path可以指定这些文件打包进APK之后的路径

        --最后添加代码 INSTALLS += dataFiles 即可打包

        --上述的例子中,我将src文件夹下的readme.txt和pic.png两个文件打包到了APK中,放在了assets/data目录下

        --assets是安卓的一个目录,是专门可以用来放APK对应的资源文件的

(2)在代码中访问打包进APK的资源文件

     如果要访问上面添加的两个文件,使用如下的路径即可:

     assets:/data/readme.txt

(3)需要注意:

     在安卓平台下,std和C标准库的文件操作函数似乎不能识别这个路径,所以要使用Qt提供的类,比如

     QImage、QFile、QDir等。(这也是Qt跨平台的便利之处)

(4)ios平台设置(Qt官方文档里面找到的方法)

4.代码实现

    QFile file1("assets:/data/readme1.txt");

    if (file1.open(QIODevice::ReadOnly | QIODevice::Text)) {

        qDebug() << "file open ok" ;

        QTextStream in(&file1);

        QString line;

        while (!in.atEnd()) {

            line = in.readLine();

            qDebug() << "读取文件内容:" << line;

        }

    }

    

注意:

     file1.open(QIODevice::ReadOnly)只能以只读方式打开,如果以读写方式打开是会打开失败的,因为这个android的专用资源文件路径不允许写。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/294670
推荐阅读
相关标签
  

闽ICP备14008679号