在OS X上部署带有LocalStorage(Sqlite)的Qt / QML应用程序

3

我正在使用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
嗯,看起来是这样的,在调试模式下运行正常,这应该说明导入没问题,对吧?我没有使用MySQL,我用的是Sqlite作为数据库。 - dfranca
1个回答

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接