Qt & Androïd, compatibilité des SDK, JDK et NDK
-
Bonjour,
J'essaie de créer une application pour mon SmartPhone en utilsant Android sous Qt6.
Alors bien qu'il y ait des erreurs de Compilation/Déploiement ça fonctionne en partie. Mais je n'ai pas de retour du débugger par exemple.De ce que 'ai compris, j'ai surtout un problème de compatibilité entre le SDK, le JDK, et le NDK
Mon SmarPhone utilise Android14.Comment savoir quelles versions de SDK, JDK et NDK sont compatibles les unes avec les autres ?
Pour info, chatGPT me donne des infos de compatibilité jusqu'à Android11 mais pas après :Android Studio Version Android SDK Version NDK Version JDK Version 4.1 - 4.2 30 (Android 11) 22.1.7171670 OpenJDK 11 4.0 29 (Android 10) 21.3.6528147 OpenJDK 8u242 3.6 28 (Android 9 Pie) 20.1.5948944 OpenJDK 8u202 3.5 28 (Android 9 Pie) 19.2.5345600 OpenJDK 8u202 3.4 28 (Android 9 Pie) 19.0.5232133 OpenJDK 8u202 3.3 28 (Android 9 Pie) 18.1.5063045 OpenJDK 8u202 3.2 28 (Android 9 Pie) 18.0.5002713 OpenJDK 8u172 3.1 27 (Android 8.1 Oreo) 17c OpenJDK 8u152 3.0 26 (Android 8.0 Oreo) 16b OpenJDK 8u144
Voici mon log d'erreurs :
':-1: avertissement : Warning: SDK processing. This version only understands SDK XML versions up to 3 but an SDK XML file of version 4 was encountered. This can happen if you use versions of Android Studio and the command-line tools that were released at different times.' ':-1: erreur : adb: failed to install C:/Users/Morgatte/Desktop/_prog/test3/build/Android_Qt_6_7_1_Clang_armeabi_v7a-Debug/android-build//build/outputs/apk/debug/android-build-debug.apk: Installing to device failed!' :-1: erreur : Le processus «*C:\Qt\6.7.1\mingw_64\bin\androiddeployqt.exe*» s’est terminé avec le code 16. :-1: erreur : Échec d'installation de l'application avec une erreur inconnue. :-1: erreur : La commande «*C:\Users\Morgatte\AppData\Local\Android\Sdk\platform-tools\adb.exe -s 45891ebc pull /system/bin/app_process C:\Users\Morgatte\Desktop\_prog\test3\build\Android_Qt_6_7_1_Clang_armeabi_v7a-Debug\android-app-process\app_process*» s’est terminée avec le code de sortie C:\Users\Morgatte\AppData\Local\Android\Sdk\platform-tools\adb.exe -s 45891ebc pull /system/bin/app_process C:\Users\Morgatte\Desktop\_prog\test3\build\Android_Qt_6_7_1_Clang_armeabi_v7a-Debug\android-app-process\app_process. :-1: erreur : Déploiement du paquet*: échec lors du pull de «*/system/bin/app_process*» vers «*C:\Users\Morgatte\Desktop\_prog\test3\build\Android_Qt_6_7_1_Clang_armeabi_v7a-Debug\android-app-process\app_process*». :-1: erreur : La commande «*C:\Users\Morgatte\AppData\Local\Android\Sdk\platform-tools\adb.exe -s 45891ebc pull /system/bin/app_process32 C:\Users\Morgatte\Desktop\_prog\test3\build\Android_Qt_6_7_1_Clang_armeabi_v7a-Debug\android-app-process\app_process*» s’est terminée avec le code de sortie C:\Users\Morgatte\AppData\Local\Android\Sdk\platform-tools\adb.exe -s 45891ebc pull /system/bin/app_process32 C:\Users\Morgatte\Desktop\_prog\test3\build\Android_Qt_6_7_1_Clang_armeabi_v7a-Debug\android-app-process\app_process. :-1: erreur : Déploiement du paquet*: échec lors du pull de «*/system/bin/app_process32*» vers «*C:\Users\Morgatte\Desktop\_prog\test3\build\Android_Qt_6_7_1_Clang_armeabi_v7a-Debug\android-app-process\app_process*». :-1: erreur : La commande «*C:\Users\Morgatte\AppData\Local\Android\Sdk\platform-tools\adb.exe -s 45891ebc pull /system/bin/linker C:\Users\Morgatte\Desktop\_prog\test3\build\Android_Qt_6_7_1_Clang_armeabi_v7a-Debug\android-app-process\linker*» s’est terminée avec le code de sortie C:\Users\Morgatte\AppData\Local\Android\Sdk\platform-tools\adb.exe -s 45891ebc pull /system/bin/linker C:\Users\Morgatte\Desktop\_prog\test3\build\Android_Qt_6_7_1_Clang_armeabi_v7a-Debug\android-app-process\linker. :-1: erreur : Déploiement du paquet*: échec lors du pull de «*/system/bin/linker*» vers «*C:\Users\Morgatte\Desktop\_prog\test3\build\Android_Qt_6_7_1_Clang_armeabi_v7a-Debug\android-app-process\linker*». :-1: erreur : La commande «*C:\Users\Morgatte\AppData\Local\Android\Sdk\platform-tools\adb.exe -s 45891ebc pull /system/lib/libc.so C:\Users\Morgatte\Desktop\_prog\test3\build\Android_Qt_6_7_1_Clang_armeabi_v7a-Debug\android-app-process\libc.so*» s’est terminée avec le code de sortie C:\Users\Morgatte\AppData\Local\Android\Sdk\platform-tools\adb.exe -s 45891ebc pull /system/lib/libc.so C:\Users\Morgatte\Desktop\_prog\test3\build\Android_Qt_6_7_1_Clang_armeabi_v7a-Debug\android-app-process\libc.so. :-1: erreur : Déploiement du paquet*: échec lors du pull de «*/system/lib/libc.so*» vers «*C:\Users\Morgatte\Desktop\_prog\test3\build\Android_Qt_6_7_1_Clang_armeabi_v7a-Debug\android-app-process\libc.so*».
-
Bonjour,
(Pour que ça puisse profiter à d'autres, je pose la solution à mon problème, une semaine que je cherchais)
Donc bien vu 'SGaist', c'est ok maintenant, mon erreur était de prendre pour chacun JKD, SDK et NDK les versions les plus récentes.
En particulier il ne fallait prendre aucuns des derniers JDK (version 18, 19, 20, 21, 22) Il me fallait la version 17.Distribution Architecture Compiler JDK Gradle Package Android 8.0 (API 26) arm64-v8, Clang 17.0.2 JDK 17 Gradle 8.3 et AGP 7.4.1 Multi-ABI APKs and AABs à 14 (API 34) x86_64 (NDK r26b ou 26.1.10909125) x86, and armeabi-v7a
Il me fallait donc :
**- Emplacement du JDK** C:\Program Files\Eclipse Adoptium\jdk-17.0.11+9 **- Emplacement du SDK** C:\Users\Morgatte\AppData\Local\Android\Sdk **- Liste des NDK Android** C:\Users\Morgatte\AppData\Local\Android\Sdk\ndk\26.1.10909125 (ou autre 26.xxx) **- Emplacement des binaires SSL** C:\Users\Morgatte\AppData\Local\Android\Sdk\android_openssl
Merci.
-
Bonjour,
Ces informations se trouvent sur la page Qt for Android de la documentation de Qt.
-
Bonjour,
(Pour que ça puisse profiter à d'autres, je pose la solution à mon problème, une semaine que je cherchais)
Donc bien vu 'SGaist', c'est ok maintenant, mon erreur était de prendre pour chacun JKD, SDK et NDK les versions les plus récentes.
En particulier il ne fallait prendre aucuns des derniers JDK (version 18, 19, 20, 21, 22) Il me fallait la version 17.Distribution Architecture Compiler JDK Gradle Package Android 8.0 (API 26) arm64-v8, Clang 17.0.2 JDK 17 Gradle 8.3 et AGP 7.4.1 Multi-ABI APKs and AABs à 14 (API 34) x86_64 (NDK r26b ou 26.1.10909125) x86, and armeabi-v7a
Il me fallait donc :
**- Emplacement du JDK** C:\Program Files\Eclipse Adoptium\jdk-17.0.11+9 **- Emplacement du SDK** C:\Users\Morgatte\AppData\Local\Android\Sdk **- Liste des NDK Android** C:\Users\Morgatte\AppData\Local\Android\Sdk\ndk\26.1.10909125 (ou autre 26.xxx) **- Emplacement des binaires SSL** C:\Users\Morgatte\AppData\Local\Android\Sdk\android_openssl
Merci.
-
-
Une règle d'or à appliquer avec Androïd: ne jamais prendre les dernières releases toutes fraîches. Les gens fournissants le SDK/NDK ne se soucient pas trop de la compatibilité avec des outils tiers comme Qt et n'hésitent pas à faire des changements incompatibles.
-
Forcément pour vérifier j'ai tout désinstallé, Qt, Androïd Studio, Eclipse (JDK), écrasé tous les répertoires avec des traces de ces logiciels...
Et je suis reparti de zéro pour voir si tout se passait bien.
Et bien non ! Je suis reparti vers le même soucis.:-1: avertissement : Warning: SDK processing. This version only understands SDK XML versions up to 3 but an SDK XML file of version 4 was encountered. This can happen if you use versions of Android Studio and the command-line tools that were released at different times.
J'ai encore une incompatibilité entre le SDK et le JDK (jdk-17.0.11+9)
Dans Android Studio j'ai bien spécifié MENU : Tools --> Android SDK --> Android 14.0 ("UpsideDownCake"),
et je me retrouve dans Qt avec la version 13... MENU : Edition --> Préférence --> Périphériques --> Android --> "Les Paramètres Android sont OK (Version du SDK : 13.0, Version du NDK : 26.1.10909125)Et j'ai aussi la version 25.1.8937393 qui s'installe sans que je le souhaite.
J'ai beau faire, je n'arrive pas à faire en sorte qu'il prenne en compte le SDK 14.0 -
Je me demande si il y a quelque chose qui traînent dans la registry de Windows.