Qt for android Sqlite数据库的QSQLITE驱动程序未加载(QSQLITE driver not loaded)
·
在某些场合 qt是会不加载SQL的so库的 而qt android 的开发就是把qt打包成so库 由java调用so库
先在QT的pro文件中加入 sql 模块
QT += sql
并且在Java代码中载入libplugins_sqldrivers_libqsqlite.so和libQt5Sql.so库如下:
System.loadLibrary("plugins_sqldrivers_libqsqlite");
System.loadLibrary("Qt5Sql");
在要使用 QSqlDatabase::database前先 载入so库存放的路径 因为使用数据库前不知到libqsqlite.so库的存放位置 导致QSQLITE驱动程序加载不成功 :
QCoreApplication :: addLibraryPath("/data/user/0/org.qtproject.example/qt-reserved-files/plugins");
其中"/data/user/0/org.qtproject.example/qt-reserved-files/plugins"为Android内应用的so库的存放位置
一般情况下plugins/sqldrivers/ 这个位置会存放libplugins_sqldrivers_libqsqlite.so库 只要告诉qt
地址".../plugins"就可以了
这个地址可以用下面的方式获取 获取到".../plugins"的地址即可
QStringList paths = QCoreApplication::libraryPaths();
for (int i = 0; i < paths.count(); ++i) {
qDebug()<<"____该应用库的地址____:"<<paths.at(i);
}
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)