2014-08-27 46 views
1

我一直在使用完全用QML和Javascript函数实现的Qt Quick 2来开发应用程序。 (除了下面详述的main.cpp)部署QML应用程序时未找到SQLite数据库

对于模型,我一直在使用LocalStorage功能。我的应用在我的电脑上工作正常,并将其导出到其他电脑。在其他电脑上,应用程序启动,但没有任何dataBase功能正在工作。

然后我发现,对于localStorage的默认路径是User\AppData\Local\MyAppName\QML\OfflineStorage\Databases

而且它可以用setOfflineStoragePath();

Main.cpp的改变:

int main(int argc, char *argv[]) { 
    QGuiApplication app(argc, argv); 

    QQmlApplicationEngine engine; 
    engine.load(QUrl(QStringLiteral("qrc:///main.qml"))); 
    engine.setOfflineStoragePath(QString("./")); 

    return app.exec(); 
} 

再次,这是在工作正常我计算机,但不会在其他计算机上产生任何结果。 (数据库文件夹是在指定的路径创建的,其中包含.sqlite和.ini文件)

我所看到的是,在其他计算机上,只有.ini似乎被创建,而且.sqlite

我会想到我的代码中有错误,但是每次我直接从Qt创建者编译我的项目(不管计算机)时,它都运行良好。

谢谢

PS:我使用的调试配置(而不是释放)在编译菜单(下左)

回答

2

虽然使用SQLite部署Qt应用程序,您必须部署在Qt5Sql.dll应用程序目录和qsqlite.dll(可在插件目录中找到。例如:Qt5.3.1 \ 5.3 \ mingw482_32 \ plugins \ sqldrivers)<app directory>/sqldrivers。这可能是解决您的问题的方法。从这个问题我不确定你是否这样做。

+0

这是类似的东西,我有一些你描述的lib,但我只是粘贴一堆他们。真正部署QML应用程序是一团糟...... – Glukose 2014-08-28 07:15:28

相关问题