Système: Windows 10
Mon problème: configurer Genymotion pour qu'il pointe vers le SDK personnalisé n'a eu aucun effet. J'ai toujours reçu le:
Impossible de démarrer le projet sur Android: impossible d'installer l'écouteur smartsocket: impossible de se lier à 127.0.0.1:5037: Une seule utilisation de chaque adresse de socket (protocole / adresse réseau / port) est normalement autorisée. (10048) n'a pas pu lire ok à partir du serveur ADB * n'a pas pu démarrer le démon * erreur: impossible de se connecter au démon
Ce que j'ai découvert, c'est qu'il y avait une différence dans les versions ADB utilisées dans tout le système. Voici la commande que j'ai utilisée pour les trouver:
where /r C:\ adb.exe
Cela a produit les résultats:
C:\Program Files\Expo XDE\resources\app\node_modules\xdl\binaries\windows\adb\adb.exe
C:\Program Files\Genymobile\Genymotion\tools\adb.exe
C:\Users\kyle\AppData\Local\Android\Sdk\platform-tools\adb.exe
C:\Users\kyle\AppData\Local\Android\Sdk\platform-tools\adb backup\adb.exe
Navigation vers chaque répertoire et exécution:
adb.exe version
M'a permis de voir que Expo exécutait la version ADB:
Android Debug Bridge version 1.0.36
Revision fd9e4d07b0f5-android
Alors que Genymotion utilisant le SDK personnalisé avait la version (c: \ Users \ kyle \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb.exe):
Android Debug Bridge version 1.0.39
Revision 3db08f2c6889-android
Comme test, j'ai pris les fichiers adb (adb.exe, AdbWinApi.dll, AdbWinUsbApi.dll) de
c:\Users\kyle\AppData\Local\Android\Sdk\platform-tools\adb.exe
et les a placés dans un dossier de sauvegarde. J'ai ensuite déplacé les fichiers adb situés à
c:\Program Files\Expo XDE\resources\app\node_modules\xdl\binaries\windows\adb\adb.exe
dans ce même endroit. J'ai tué adb avec:
adb kill-server
ce qui a provoqué un redémarrage automatique du serveur adb en raison du fait que mon appareil Genymotion était déjà en cours d'exécution. J'ai appuyé sur le bouton "Redémarrer" à l'intérieur de l'Expo XDE et il a immédiatement commencé à fonctionner. Voici le journal où j'ai appuyé sur le bouton de redémarrage à 1:13:04 du matin:
12:45:53 AM
could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037: Only one usage of each socket address (protocol/network address/port) is normally permitted. (10048)
could not read ok from ADB Server
* failed to start daemon *
error: cannot connect to daemon
1:13:04 AM
Restarting project and clearing packager cache (Hold shift while clicking restart to avoid clearing cache).
1:13:11 AM
Starting React Native packager...
1:13:17 AM
Scanning 543 folders for symlinks in C:\Users\kyle\git\betalog\node_modules (49ms)
1:13:17 AM
1:13:19 AM
Couldn't adb reverse: closed
1:13:20 AM
Project opened! You can now use the "Share" or "Device" buttons to view your project.
1:13:26 AM
Couldn't adb reverse: closed
1:13:26 AM
Downloading latest version of Expo
1:13:28 AM
Installing Expo on device
1:13:33 AM
Opening on Android device
1:13:56 AM
Building JavaScript bundle: finished in 59643ms.
1:14:01 AM
Dependency graph loaded.
1:14:03 AM
Your JavaScript transform cache is empty, rebuilding (this may take a minute).
Conclusion: Genymotion et Expo devront peut-être utiliser la même version d'adb afin que l'Expo puisse communiquer correctement avec l'appareil simulé. Le fait de pointer Genymotion vers l'emplacement de votre SDK Android et de vous assurer qu'Expo XDE a cette même version permettra une communication correcte entre les appareils. J'ai déplacé la version d'Expo XDE vers l'emplacement du SDK, mais vous pourrez peut-être aller dans l'autre sens (prenez les fichiers ADB sdk et placez-les dans l'emplacement des ressources d'Expo XDE).
PS J'ai parcouru tous les articles de stackoverflow liés à ce problème. Juste pour que vous sachiez que mon gestionnaire de tâches affiche trois instances d'adb.exe en cours d'exécution. Si vous tuez l'un d'entre eux, ils reviennent.
J'espère que cela aide / applaudit