Problème android mysql



  • 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 QMYSQL3

    J'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.


  • Lifetime Qt Champion

    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.



  • Bonjour,
    J'ai essayé de suivre le tuto du site de Qt avec le script .sh avec MSYS sur windows. Mais j'obtiens des erreurs :
    0_1560500142515_dbb2ef3d-5384-436b-a9eb-48774181c94c-image.png

    Je suis vraiment perdu et ça bloque tous le reste du projet.


  • Lifetime Qt Champion

    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_Android

    Car 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


  • Lifetime Qt Champion

    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 += qmysql

    unix:!macx:
    {
    android:
    {

        ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android
        contains(ANDROID_TARGET_ARCH,armeabi-v7a) {
            ANDROID_EXTRA_LIBS = \
                $$PWD/android/libs/arm/libmariadb.so
        }
    }
    

    }


  • Lifetime Qt Champion

    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=0x80

    D 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 QMYSQL3

    voici les lignes en rouges dans la sortie de l'application


  • Lifetime Qt Champion

    Puisqu'il y a eu compilation de OpenSSL durant la compilation de MariaDB, je suppose qu'il faut également les déployer.



  • Bonjour déployer quel fichier et a quel endroit ? Je suis novice et perdu.



  • 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.




  • Lifetime Qt Champion

    @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.



  • oui une erreur de cryptographie pour la compilation



  • Aidez moi s'il vous plait . Car besoin urgent de communiquer a distant avec la base de donnée MYSQL et mon application android.


  • Lifetime Qt Champion

    @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.


  • Lifetime Qt Champion

    @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


  • Lifetime Qt Champion

    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.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.