jwe*_*rny 12
有两种方法可以实现,两者都在Qt 5.1 Documentation For Android上的"移植现有Qt应用程序"中提到.
对于#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
Run Code Online (Sandbox Code Playgroud)
您可以使用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
Run Code Online (Sandbox Code Playgroud)
资产中的文件是只读的.因此,如果要更改它们,应首先将其复制到其他位置:
QFile dfile("assets:/MyFile1");
if (dfile.exists())
{
dfile.copy("./MyFile1");
QFile::setPermissions("./MyFile1",QFile::WriteOwner | QFile::ReadOwner);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9926 次 |
| 最近记录: |