Qsettings 适用于 32 位 apk 但不在我的 64 位 apk 中创建文件

Posted

技术标签:

【中文标题】Qsettings 适用于 32 位 apk 但不在我的 64 位 apk 中创建文件【英文标题】:Qsettings works for 32bit apk but does'nt create file in my 64bit apk 【发布时间】:2020-05-13 01:15:15 【问题描述】:

我正在开发一个使用 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();

【问题讨论】:

请提供一个最小的例子。 【参考方案1】:

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

-no-feature-linkat

【讨论】:

以上是关于Qsettings 适用于 32 位 apk 但不在我的 64 位 apk 中创建文件的主要内容,如果未能解决你的问题,请参考以下文章

适用于 Windows 7 32 位系统的 Java 11 JDK

FileOpenDialog 生成的 CDN_SELCHANGE 通知消息适用于 32 位构建而不是 64 位构建

Electron-builder 应用程序显示 32 位的空白屏幕,但适用于 64 位版本

Qsettings 只能存储一次价值?

如何使 Android 的 aapt 和 adb 在没有 ia32-libs 的 64 位 Ubuntu 上工作(适用于版本 12、13 和 14)

求一个Windows Server 2003 R2 简体中文企业版的ISO 适用于32位操作系统的!!!