我正在使用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
起初,Release模式下运行良好。
但是当我尝试在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
第五行
就是这一行:
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。
.import
方法是否正常工作,Sql
对象是否被正确初始化了吗?为此添加一些代码并进行部署。你的开发工具包中是否已经有了MySQL? - Stoleg