Russian Qt Forum
Ноябрь 12, 2024, 11:01 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qt, Android и MySQL  (Прочитано 5849 раз)
kandrey
Гость
« : Май 26, 2013, 15:55 »

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

http://habrahabr.ru/post/134502/
Записан
kandrey
Гость
« Ответ #2 : Май 26, 2013, 18:54 »

да, я видел этот пост
Записан
soiam
Гость
« Ответ #3 : Май 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 и файл библиотеки находится по указанному пути
Записан
kandrey
Гость
« Ответ #4 : Май 27, 2013, 15:40 »

Спасибо! Заработало.
А такой еще вопрос, не совсем по теме - как убрать черный фон при запуске через Ministro, цветовая схема там просто чудовищная.
« Последнее редактирование: Май 27, 2013, 16:21 от kandrey » Записан
soiam
Гость
« Ответ #5 : Май 27, 2013, 18:17 »

у тебя где-то неявно вызывается вот примерно такой кусок кода
Код:
#include <QAndroidStyle>
QApplication a;
.....
a.setStyle(new QAndroidStyle());
я из-за этого даже откатился на третью альфу necessitas. Там по умолчанию светлый стиль linux. Копай в сторону стиля приложения
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.136 секунд. Запросов: 20.