Russian Qt Forum

Qt => Базы данных => Тема начата: kandrey от Май 26, 2013, 15:55



Название: Qt, Android и MySQL
Отправлено: kandrey от Май 26, 2013, 15:55
Всем привет.
Такая вот история. Есть Qt приложение, которое работает с MySQL базой. Понадобилось все это запустить на андроид. Ну, скачал necessitas, собрал прогу и mysql клиент под armeabi. Когда все это пускается из криэйтора - то все прекрасно работает, а вот при попытке запустить отдельно (с помощью ministro) - прога упорно не видит mysql клиент, хотя я указал его при сборке .apk файла, и вот QLabrary::load("qsqlmysq") ошибку не выдает, значит драйвер доступен. Мне показалось, что Qt ищет этот драйвер только в папке /plugins/sqldrivers. Может как то можно в ministro этот драйвер доложить? но вот не знаю как. Подскажите, если кто в теме, плиз.


Название: Re: Qt, Android и MySQL
Отправлено: shame от Май 26, 2013, 18:06
http://habrahabr.ru/post/134502/


Название: Re: Qt, Android и MySQL
Отправлено: kandrey от Май 26, 2013, 18:54
да, я видел этот пост


Название: Re: Qt, Android и MySQL
Отправлено: soiam от Май 27, 2013, 12:44
У меня заработало через pluginloader
Код:
        pluginLoader = new QPluginLoader("/data/data/org.kde.necessitas.example.<package_name>/lib/libqsqlmysql.so");

        qDebug(pluginLoader -> load() ? "MYSQL plugin was loaded":"MYSQL plugin was not loaded");
        if (pluginLoader -> instance())
        {
            QSqlDriverPlugin * driver_plugin = (QSqlDriverPlugin *)pluginLoader -> instance();
            QSqlDriver * mysql_drv = driver_plugin -> create("QMYSQL");
                    if (mysql_drv)
                    {
                        qDebug("mysql added");
                        remote_db = QSqlDatabase::addDatabase(driver_plugin -> create("QMYSQL"),"MYSQL connection");
                    }
                    else
                        qDebug("mysql not created");
        }

Это при условии, что дравер был собран, был добавлен в bundle_libs и файл библиотеки находится по указанному пути


Название: Re: Qt, Android и MySQL
Отправлено: kandrey от Май 27, 2013, 15:40
Спасибо! Заработало.
А такой еще вопрос, не совсем по теме - как убрать черный фон при запуске через Ministro, цветовая схема там просто чудовищная.


Название: Re: Qt, Android и MySQL
Отправлено: soiam от Май 27, 2013, 18:17
у тебя где-то неявно вызывается вот примерно такой кусок кода
Код:
#include <QAndroidStyle>
QApplication a;
.....
a.setStyle(new QAndroidStyle());
я из-за этого даже откатился на третью альфу necessitas. Там по умолчанию светлый стиль linux. Копай в сторону стиля приложения