首页 > 解决方案 > Qsettings 适用于 32 位 apk 但不在我的 64 位 apk 中创建文件

问题描述

我正在开发一个使用 QtCreator 构建的 IOS/android 应用程序。对于 Android,我需要 32 位和 64 位版本的 APK 才能将其上传到 Playstore。我的 32 位版本运行良好,但我的 64 位版本不保存任何配置。我正在使用 Qsettings 创建一个 .conf 文件。当我使用 32 位应用程序执行此操作时,无论我在何处创建它,我都可以轻松找到我的 .conf 文件,但对于我的 64 位版本,该文件夹仍然是空的。我检查了一下,我能够在我用于 .conf 文件的同一文件夹上创建文件夹和文件,因此这似乎不是权限问题。有谁知道 Qsettings 是否需要一些特殊的东西才能为 64 位应用程序编写文件?我已阅读文档(https://doc.qt.io/qt-5/qsettings.html)但找不到任何信息。

QSettings::setPath(QSettings::NativeFormat,QSettings::UserScope,QStandardPaths::writableLocation(QStandardPaths::StandardLocation::GenericDataLocation) + "/private");
    QSettings settings("Settings", "test");
    settings.setValue("test", "text");
    settings.sync();

标签: androidqt32bit-64bitqsettings

解决方案


我终于找到了我的答案。我使用的是旧版本的 Qt (5.10),并且存在一个影响 QSettings的错误 ( https://bugreports.qt.io/browse/QTBUG-68344 )。如果您处于这种情况,一个简单的解决方法是使用 configure 命令的该参数重建 Qt:

-no-feature-linkat

推荐阅读