Библиотека Qt C ++ в проекте Android Eclipse: драйвер QSQLITE не загружен

Я создал динамическую библиотеку Qt, которая использует Qt SQL для открытия базы данных SQLite, но я получаю эту ошибку:

QSqlDatabase: QSQLITE driver not loaded
QSqlDatabase: available drivers: 

DLL работала нормально как часть приложения Qt Android, однако мне нужно использовать ее через JNI из существующего приложения Java, разработанного в Eclipse.

Это самый короткий пример кода, который воспроизводит проблему. Я загружаю библиотеку из Java и вызываю ееinit() метод:

System.loadLibrary("plugins_sqldrivers_libqsqlite");
System.loadLibrary("Qt5Sql");
System.loadLibrary("MyQtLib");
MyQtLib.init();

А внутри библиотеки Qt я просто вызываю QSqlDatabase :: addDatabase ():

JNIEXPORT void JNICALL Java_test_MyQtLib_foo(JNIEnv *, jclass)
{
    // Manually create a QCoreApplication instance.
    int argc = 1;
    static char arg[] = "";
    static char *arg2 = arg;
    app = new QCoreApplication(argc, &arg2);
    // Try to add an SQLite db connection.
    QSqlDatabase::addDatabase("QSQLITE");
}

Так как ошибкаQSQLITE driver not loadedи библиотека Qt работала внутри приложения Qt, я предполагаю, что Qt выполняет некоторую инициализацию, которую я пропускаю.

Но это не устранило ошибку, поэтому должно быть что-то еще. Обычно приложение Qt будет использоватьQtApplication.java а такжеQtActivity.java выполнить некоторую инициализацию, поэтому они должны делать что-то большее, чего я не делаю.

Ответы на вопрос(1)

Ваш ответ на вопрос