我正在使用QML做一个使用LocalStorage来存储一些信息的应用程序。 我在调试模式下运行时工作正常。
访问数据库的storage.js
就是这样。
.import QtQuick.LocalStorage 2.0 as Sql
// First, let's create a short helper function to get the database connection
function getDatabase() {
return Sql.LocalStorage.openDatabaseSync("MyApp", "0.1", "StorageDatabase", 100000);
}
我的Qt .pro
文件包含Sql模块:
QT += sql
首先它在发布模式下运行良好。
但是当我尝试在OSX上部署时,像这样运行macdeployqt
:
macdeployqt MyApp.app -dmg -qmldir=../MyApp/qml/
首先我遇到一个错误,但我认为没问题,因为我不使用MySQL:错误:没有文件
"/opt/local/lib/mysql55/lib/libmysqlclient.18.dylib"
我通过LocalStorage使用sqlite。
然后尝试在发布模式下运行它不再工作,数据库访问不起作用,甚至在它运行的部署中都没有...现在当我尝试运行应用程序时我得到了错误:
storage.js:5: ReferenceError: Sql is not defined
line 5
就是这个:
return Sql.LocalStorage.openDatabaseSync("MyApp", "0.1", "StorageDatabase", 100000);
Sql名称在第一行中定义:
.import QtQuick.LocalStorage 2.0 as Sql
在互联网上寻找这个错误我发现有些地方告诉我要做的事情,就像这里:https://qt-project.org/forums/viewthread/28371
关于此的任何线索?
我使用 Qt5.2,Quick 2.0,Qt Creator 3.01
答案 0 :(得分:1)
问题与Qt5.1中的Qt错误有关 https://qt-project.org/forums/viewthread/29805/
我已经使用帖子中链接的脚本和自定义macdeployqt来完成这项工作。
脚本:https://gist.github.com/lasconic/5965542 自定义macdeployqt:https://github.com/MaximAlien/macdeployqt
似乎Qt并未对桌面开发给予太多关注,只是解释了一个尚未修复的错误。