Qt for android Sqlite数据库的QSQLITE驱动程序未加载(QSQLITE driver not loaded)

在QT的pro文件中添加SQL模块后,需要在Java代码中加载libplugins_sqldrivers_libqsqlite.so和libQt5Sql.so库。在使用QSqlDatabase之前,需添加库路径,确保QSQLITE驱动能成功加载。通常,库位于/data/user/0/org.qtproject.example/qt-reserved-files/plugins。可以通过QCoreApplication::libraryPaths()获取库路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在某些场合 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);
}
QSQLITEQt框架中的一个数据库驱动程序,用于连接和操作SQLite数据库SQLite是一种轻量级的嵌入式数据库,不需要独立的服务器进程,可以直接访问数据库文件。QSQLITE驱动程序允许Qt应用程序通过Qt提供的API来执行SQL查询、插入、更新和删除等操作。 QODBC是Qt框架中的一个数据库驱动程序,用于连接和操作ODBC(Open Database Connectivity)兼容的数据库。ODBC是一种标准的数据库访问接口,可以通过ODBC驱动程序连接各种不同类型的数据库。 QODBC3是Qt框架中的一个数据库驱动程序,与QODBC类似,用于连接和操作ODBC兼容的数据库。QODBC3是Qt 3版本中的驱动程序,已经过时,不推荐使用。 QPSQL是Qt框架中的一个数据库驱动程序,用于连接和操作PostgreSQL数据库。PostgreSQL是一种开源的关系型数据库管理系统,QPSQL驱动程序允许Qt应用程序通过Qt提供的API来执行SQL查询、插入、更新和删除等操作。 QPSQL7是Qt框架中的一个数据库驱动程序,与QPSQL类似,用于连接和操作PostgreSQL数据库。QPSQL7是Qt 3版本中的驱动程序,已经过时,不推荐使用。 "Driver not loaded"表示在使用这些数据库驱动程序时,可能出现了驱动程序未加载的错误。这可能是由于缺少相应的驱动程序文件或配置不正确导致的。需要确保正确安装了相应的数据库驱动程序,并在应用程序中正确配置和加载驱动程序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值