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