在某些场合 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);
}