-
Bonjour, je suis bloqué depuis plusieurs jours avec un problème de library mysql.
W libSojAndroid.so: QSqlDatabase: QMYSQL driver not loaded
W libSojAndroid.so: QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3J'ai regardé sur différents site. On me parle de libqsqlmysql.so qu'il faut compiler. Mais après avoir suivie tous les tuto sur le sujet je n'ai toujours aucun résultats.
Merci de votre aide.
-
Bonjour et bienvenue,
Quels tutorials exactement ?
Pour Androïd, la première chose à faire est de compiler MariaDB pour Android avant de compiler le plugin pour Qt. -
Un lien vers le dit tutorial serait une bonne chose.
Pour le moment je vois une tentative de compiler OpenSSL.
-
Bonjour voici le lien : (Option 2) pour windows avec Msys
https://wiki.qt.io/Build_Qt_5_MySQL_Plugin_for_AndroidCar le problème est que je crée une application android, que j'ai besoin d'accéder a une base mysql distante. Comme indiqué dans mon premier message le fichier libqsqlmysql.so est présent mais ne fonctionne pas.
QT 5.12.3
android armV7
windows 7 -
Vous êtes-vous assuré que les dépendances étaient bien déployées avec le plugin ?
Une chose à faire est de lancer l'application avec la variable d'environnement
QT_DEBUG_PLUGINS
à 1. Cela donnera des informations supplémentaires par rapport au chargement des différents plugins utilisés par l'application. -
Nn je n'ai pas regarder. Mais je ne sais pas comment regarder.
Voici une partie du code du fichier .pro
MYSQL_LIBS=-lmysqld
DEPLOYMENT_PLUGIN += qmysqlunix:!macx:
{
android:
{ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android contains(ANDROID_TARGET_ARCH,armeabi-v7a) { ANDROID_EXTRA_LIBS = \ $$PWD/android/libs/arm/libmariadb.so } }
}
-
Du poin de vue du déploiement les informations ont l'air bonne.
Donc, il faut regarder dans la console les messages relatifs à l'application. Comme dit précédemment, la variable d'environment
QT_DEBUG_PLUGINS
permet de savoir qu'est-ce qui se passe lors du chargement des différents plugins. -
Sortie de l'application:
W linker : "/data/app/org.qtproject.example.SojAndroid-qAWxlWpLElzw6BvJczymlg==/lib/arm/libQt5AndroidExtras.so" has unsupported flags DT_FLAGS_1=0x80
W linker : "/data/app/org.qtproject.example.SojAndroid-qAWxlWpLElzw6BvJczymlg==/lib/arm/libQt5Gui.so" has unsupported flags DT_FLAGS_1=0x80
W linker : "/data/app/org.qtproject.example.SojAndroid-qAWxlWpLElzw6BvJczymlg==/lib/arm/libQt5Sql.so" has unsupported flags DT_FLAGS_1=0x80
W linker : "/data/app/org.qtproject.example.SojAndroid-qAWxlWpLElzw6BvJczymlg==/lib/arm/libQt5Widgets.so" has unsupported flags DT_FLAGS_1=0x80
W linker : "/data/user/10/org.qtproject.example.SojAndroid/qt-reserved-files/plugins/platforms/android/libqtforandroid.so" has unsupported flags DT_FLAGS_1=0x80D libSojAndroid.so: getInstance = 2
D libSojAndroid.so: PluginLoader worked = false
D libSojAndroid.so: Plugin Loader error= "The shared library was not found."
W libSojAndroid.so: QSqlDatabase: QMYSQL driver not loaded
W libSojAndroid.so: QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3voici les lignes en rouges dans la sortie de l'application
-
Puisqu'il y a eu compilation de OpenSSL durant la compilation de MariaDB, je suppose qu'il faut également les déployer.
-
J'ai essaye ce tuto. J'ai une erreur de compilation pour la creation des deux fichiers. J'ai ensuite télécharger l'exemple et compiler avec 5.12.3 et j'obtiens la même erreur que moi . Je me demande si la compilation des deux fichiers doit se faire pour qt 5.12.3 ou on peut prendre des fichiers compiler sous des versions anciennes.
-
-
@PAD49 said in Problème android mysql:
J'ai essaye ce tuto. J'ai une erreur de compilation pour la creation des deux fichiers. J'ai ensuite télécharger l'exemple et compiler avec 5.12.3 et j'obtiens la même erreur que moi . Je me demande si la compilation des deux fichiers doit se faire pour qt 5.12.3 ou on peut prendre des fichiers compiler sous des versions anciennes.
Il est recommandé de compiler OpenSSL soit-même puisqu'il s'agit d'une librairie de cryptographie.
-
@PAD49 said in Problème android mysql:
oui une erreur de cryptographie pour la compilation
Je ne vois pas ce que vous voulez dire avec ça.
-
@PAD49 said in Problème android mysql:
Aidez moi s'il vous plait . Car besoin urgent de communiquer a distant avec la base de donnée MYSQL et mon application android.
Je comprends tout à fait que ce soit urgent pour vous mais il vous faut comprendre que ceci est un forum utilisateur où ce sont des volontaires qui répondent quand ils en ont le temps et l'envie.
Si vous avez besoin d'une aide plus rapide et ponctuelle il vous faut considérer l'engagement d'un.e ou plusieurs professionnel.le.s.
-
@SGaist je comprend vos messages je suis désole si vous l'avez mal prit.
Voici l'erreur que j'obtiens quand j'essaye de compiler le driver mysql pour android:
/usr/bin/install -c -m 644 ./iconvctl.3.html /c/Android/android-ndk-r17b-windows-x86_64/android-ndk-r19c/platforms/android-16/arch-arm//usr/share/doc/libiconv/iconvctl.3.html
make[1] : on quitte le répertoire « /c/Android/mysql/build_libmariadb_temp/libiconv-1.14/man »
-- Configuring done
-- Generating done
-- Build files have been written to: /c/Android/mysql/build_libmariadb_temp/mariadb_client-2.0.0-src/build
Scanning dependencies of target libmariadb
[ 1%] Building C object libmariadb/CMakeFiles/libmariadb.dir/array.c.o
In file included from C:/msys64/usr/include/machine/endian.h:6:0,
from C:/msys64/usr/include/sys/types.h:51,
from C:/msys64/usr/include/pthread.h:11,
from C:/Android/mysql/build_libmariadb_temp/mariadb_client-2.0.0-src/include/my_global.h:73,
from C:/Android/mysql/build_libmariadb_temp/mariadb_client-2.0.0-src/libmariadb/mysys_priv.h:18,
from C:/Android/mysql/build_libmariadb_temp/mariadb_client-2.0.0-src/libmariadb/array.c:22:
C:/msys64/usr/include/machine/_endian.h: In function '__ntohs':
C:/msys64/usr/include/machine/_endian.h:38:3: warning: matching constraint does not allow a register
: "0" (_x));
^
In file included from C:/msys64/usr/include/sys/fcntl.h:3:0,
from C:/msys64/usr/include/fcntl.h:12,
from C:/Android/mysql/build_libmariadb_temp/mariadb_client-2.0.0-src/include/my_global.h:175,
from C:/Android/mysql/build_libmariadb_temp/mariadb_client-2.0.0-src/libmariadb/mysys_priv.h:18,
from C:/Android/mysql/build_libmariadb_temp/mariadb_client-2.0.0-src/libmariadb/array.c:22:
C:/msys64/usr/include/sys/_default_fcntl.h: At top level:
C:/msys64/usr/include/sys/_default_fcntl.h:186:8: error: redefinition of 'struct flock'
struct flock {
^
In file included from C:/msys64/usr/include/sys/types.h:226:0,
from C:/msys64/usr/include/pthread.h:11,
from C:/Android/mysql/build_libmariadb_temp/mariadb_client-2.0.0-src/include/my_global.h:73,
from C:/Android/mysql/build_libmariadb_temp/mariadb_client-2.0.0-src/libmariadb/mysys_priv.h:18,
from C:/Android/mysql/build_libmariadb_temp/mariadb_client-2.0.0-src/libmariadb/array.c:22:
C:/msys64/usr/include/machine/types.h:46:8: note: originally defined here
struct flock {
^
make[2]: *** [libmariadb/CMakeFiles/libmariadb.dir/build.make:63: libmariadb/CMakeFiles/libmariadb.dir/array.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:149: libmariadb/CMakeFiles/libmariadb.dir/all] Error 2
make: *** [Makefile:152: all] Error 2
Changes:
diff: ./rootfs_files_before.txt: No such file or directory -
Il y a des choses étranges. Pourquoi le ndk 19 est-il contenu dans le 17 ?
On dirait également que des headers du system sont utilisés à la place de ceux du NDK.