Salut à tous,
Passé Freelance depuis quelques temps, j'ai résolu de ne plus utiliser Windows pour passer sous Linux (Rocky Linux 9 pour ceux que ça intéresse avec le bureau KDE) car j'en ai soupé des multiples versions de Windows.
Il m'a fallu cependant, pour reprendre un projet Android sous Delphi configurer une machine virtuelle Windows et pouvoir lancer l'application en debug avec Delphi, sur un périphérique Android, les émulateurs c'est bien mais ça a ses limites comme tout le monde le sait.
J'ai une licence Delphi 11
Pour la virtualisation j'ai choisi VirtualBox, que je connais bien pour l'avoir de nombreuses fois utilisée.
La machine invitée est un Windows 10 pro, après avoir essayer un échec avec Windows 11, qui ne fait que consommer du processeur et qui est peu réactif, même avec beaucoup de RAM (16 go) et très lourd par rapport à Windows 10
Donc installation de Delphi 11 (merci mon fichier .slip) avec la plateforme Android, jusque là tout va bien
Maintenant il faut connecter le périphérique Android et la machine virtuelle Windows, c'est là que ça se gâte un peu...
Mon périphérique est bien détecté par Linux, j'ai installé Android Studio et je peux déployer une application depuis Linux sans problème, mais pas depuis Windows
1. Bon déjà j'ai oublié d'installer l'extension pack de VirtualBox pour que celui-ci puisse voir et adopter les périphériques USB 2.0, c'était la fin de journée
2. Le lendemain, après avoir installé le pack d'extension, je ne vois toujours aucun périphérique USB (alors que j'ai un disque externe, une caméra, un casque, etc... le tout sur USB)
Après ceci, le client n'étant pas pressé, je vague à d'autres occupations...
3. De retour sur le sujet, je me dis que c'est pas normal de ne pas voir les périphériques USB sur VirtualBox (alors que Linux les voient lui) :
Quelques recherches plus loin (et quelques essai infructueux), je tombe sur une discussion (sur StackOverFlow qui traite de ce sujet)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 [sergio@device-13 ~]$ lsusb Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 004: ID 04f2:b729 Chicony Electronics Co., Ltd Chicony USB2.0 Camera Bus 001 Device 003: ID 0d8c:0289 C-Media Electronics, Inc. USB Advanced Audio Device Bus 001 Device 005: ID 8087:0026 Intel Corp. AX201 Bluetooth Bus 001 Device 009: ID 0480:0900 Toshiba America Inc MQ04UBF100 Bus 001 Device 008: ID 8086:0808 Intel Corp. USB PnP Sound Device Bus 001 Device 017: ID 12d1:107e Huawei Technologies Co., Ltd. P10 smartphone Bus 001 Device 006: ID 248a:8353 Maxxter Wireless Receiver Bus 001 Device 002: ID 0424:2744 Microchip Technology, Inc. (formerly SMSC) Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
En résumé, sous Linux, VirtualBox s'exécute dans la session utilisateur avec vboxusers comme groupe, et pour pourvoir accéder aux périphériques USB, votre compte utilisateur Linux doit appartenir au groupe vboxusers, pour se faire, rien de plus facile :
Après fermeture, réouverture de la session et relance de la machine virtuelle, celle-ci voit enfin les périphériques USB, je me dis, que c'est OK maintenant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 sudo usermod -aG vboxusers <monuserlinux>
QUE NENNI !!
Dans la machine virtuelle Windows, bien que j'ai capturé mon périphérique Android, Delphi refuse de le détecter, pire à la compilation il demande si je veux mettre à jour le SDK Android ?
4. Je désinstalle et réinstalle la plateforme Android, mais idem, impossible de compiler déjà, sans parler de déployer
Bon là je me dis que je vais déjà lancer un adb list pour voir s'il voit au moins quelque chose... Et là impossible de trouver adb.exe sur le disque de la machine virtuelle, normalement avec Delphi il est dans C:\Users\Documents\Embarcadero\Studio\<Version>\CatalogRepository\<version du SDK Android>\Platform-tools\
En fait je ne sais pas pourquoi, mais une grosse partie du SDK n'est pas là, alors que pour le NDK c'est OK
5. Pour ne pas me faire suer à installer un JDK j'ai opté pour "Eclipse Terumin OpenJDK 11" à l'installation de RAD Studio me disant que c'était bon pour ce que j'ai à faire...
Grossière erreur :
A l'installation, GetIt installe le JDK puis les outils du sdkmanager d'Android, or il s'avère qu'il s'agit de la dernière version du SDK manager et celle-ci n'est pas compatible avec Eclipse Terumin OpenJDK 11, il faut au moins JDK 17 pour qu'elle fonctionne
Mais ce qui est encore plus retors, c'est qu'il n'y pas de message d'erreur lorsque l'installeur va lancer les commandes suivantes :
Tout semble se passer bien mais il manque en fait la moitié des outils pour Android !!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 sdkmanager -install "platform-tools" sdkmanager -install "build-tools;32.0.0" sdkmanager -install "platforms;android-32"
6. Après avoir compris et installé un JDK plus récent, j'ai pu installé ce qui manquait avec sdkmanager et maintenant je peux développer sous Android dans une machine virtuelle Windows 10 sous Linux !!!
Bref, après avoir un temps, envisager de remonter une machine physique Windows, je peux développer tranquillement en restant principalement le reste du temps sous Linux !!!
Voila c'était un petit résumé de mes péripéties, si un jour ça peux servir à quelqu'un !
Partager