【发布时间】:2014-05-02 23:39:09
【问题描述】:
我正在使用 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: ERROR: no file at
"/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
【问题讨论】:
-
我可能会说些琐碎的话,但是您能检查一下
.import方法是否正常工作并且Sqlobject 是否正确启动?为此添加一些代码并进行部署。您是否将 MySQL 作为开发工具包的一部分? -
嗯,看起来是这样,它在调试模式下工作正常,这应该表明导入很好,对吧?我没有 MySQL,我使用 Sqlite 作为数据库。