Quelles sont les bases pour développer à partir de Qt en C++ pour la plateforme Android ? Comment bien démarrer dans le développement d'application pour Android avec Qt/C++ ?
Dans la documentation Qt, à la page suivante
Qt Documentation - Getting Started with Qt for Android
Vous trouverez qu'il faut installer tout un tas de trucs ... C'est pénible mais il faut en passer par là. Décortiquons ce que l'on nous demande, déjouons les pièges de toutes ces installations successives.
Télécharger et installer le dernier Android SDK et NDK
Quand on arrive sur le site Android, c'est le "Android Studio" que l'on vous propose de télécharger. Allons-y. On aurait tout aussi bien pu installer le "Stand Alone SDK" mais bon, aujourd'hui on a des machines rapides et puissantes ...
Téléchargement et installation de Android Studio :
Installe les éléments suivants :
Cliquez sur "Next >", l'installeur s'exécute, c'est énorme, 962 Mo compressés :
Affichez les détails :
Lancez "Android Studio" pour voir, la procédure de configuration est impressionnante :
Attendre, patience, c'est long .... Et enfin :
Je ne vais pas plus loin, pour l'instant.
Téléchargez et installer le Android NDK
Après le "Android Studio", il faut le NDK (Native Development Kit) pour développer en C et en C++ :
et tirer parti de librairies existantes dans ces langages.
Je choisie le :
Windows 64-bit android-ndk-r10e-windows-x86_64.exe 419616132 8412bb4991a95e08fda50b5a44d95df7
Car j'ai effectivement une librairie en langage C compilée avec MinGW w64 ... Je sens que cela ne va pas aller tout seul ... grrr.
Je télécharge et je clique dessus :
|
Console d'intallation du Android NDK |
Installer Apache Ant v1.8 or later
Mais qu'est ce que c'est ? Cela servirait à "builder" le soft ...
Extraire dans : C:\apache-ant-1.9.6
Ouvrir le fichier "INSTALL"
un lien vers :
Il faut créer la variable d'environnement "ANT_HOME" avec le path et l'ajouter dans le path.
On va être bon pour installer également "Java SE Development Kit" car on voit que Ant fait appel à Java.
Installer Java SE Development Kit
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
Ça commence à être un peu fatiguant ...
Windows x64
140.06 MB jdk-7u79-windows-x64.exe
|
Installation du "Java SE Development Kit" |
Poursuite de l'installation de Apache Ant
J'ai ajouter les variable d'environnement :
ANT_HOME = C:\apache-ant-1.9.6\
Et
JAVA_HOME = C:\Program Files\Java\jdk1.8.0_40\
(j'avais un jse déjà installé en v1.8 ...)
J'ai configuré le path et donc dans la console j'obtiens :
|
Exécution de la commande "Ant" dans la console |
semble indiquer que tout va bien jusque là ...
Installation de Google USB Driver
Pour Windows, il faut encore installer ça ... Je choisie de passer par Android Studio :
Tool -> Android -> SDK Manager :
|
Installer Google USB Driver avec Android Studio |
Cliquez sur "Apply" :
Configuration de Qt pour Android
Lancez Qt Creator, dans : Outils -> Options ... Choisir Android configurez les paths
du JDK
de SDK Android
et de NDK Android
Le plus difficile c'est de trouver le NDK ! C'est à dire, de détecter où "android-ndk-r10e-windows-x86_64.exe" à bien peu installer le ndk, pour mon cas, c'est là où j'ai téléchargé le .exe dans :
C:\Users\Mabyre\Downloads\android-ndk-r10e ....
Ce qui donne pour les paths de Android sous Qt Creator :
Vérifier l'installation du SDK et du NDK Android pour Qt
Je vérifie mon installation, en essayant de créer ma première application Android avec Qt :
Fichier -> Nouveau projet puis Application :
|
Mon Application crée avec Qt Creator est supportée par Android Desktop |
Puis dans le choix des Kits :
Par la suite, c'est plus compliqué, il faut un "Android Emulator" qui fonctionne :
Je pense que l'on peut résoudre le problème avec le SDK Manager, quelque part j'ai vu dans les "Extras" un accélérateur :
Mais cela ne suffit pas ! Il faut exécuter un installeur.
http://stackoverflow.com/questions/26355645/error-in-launching-avd
Mais au moment d'exécuter :
C:\Users\Mabyre\AppData\Local\Android\sdk\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm-android.exe
Boom !
Bon, si x86 a besoin d'accélération et que je ne peux pas la configurer, je créé un AVD en cliquant sur "
Start AVD Manager", j'utilise armeabi-v7a comme CPU (pas besoin de VT !), je créé ma première application Qt et je lance l'exécution :
Avant, j'ai encore une erreur a résoudre :
Qt Android “install_target error 1”
Je vous laisse lire la page suivante :
https://openclassrooms.com/forum/sujet/qt-android-install-target-error-1
Il ne faut
pas d'espace dans le chemin d'accès au projet ... !!? En 2015 ??? incroyable, un outil qui ne sait pas résoudre un espace dans un path ... bref.
Après 5 bonnes minutes d'exécution, de compilation de déploiement de chargement , enfin :
|
Mon Application Qt/C++ émulée dans un Androïde Device à base d'ARM - Rien que cela ! |
Qt pour Android - Conclusion
Ce n'est vraiment pas simple, il faut une bonne demi-journée pour installer, configurer et trouver tous les pièges pour que cela fonctionne ...
Je vais vous livrer mon sentiment, après moulte-moulte configurations essais, compilation, etc etc ... le développement pour Android sous Qt c'est pas gagné ! Plantages, crashs et une lenteur d'exécution me font penser que cela ne va pas être de la tarte ...