Je travaille avec React-Native, Android et Genymotion sur Mac. Quand je cours, react-native run-android
j'obtiens ces lignes à la fin de l'opération de lancement:
...
04:54:40 E/adb: error: could not install *smartsocket* listener: Address already in use
04:54:40 E/adb: ADB server didn't ACK
04:54:40 E/ddms: '/Users/paulbrie/Library/Android/sdk/platform-tools/adb,start-server' failed -- run manually if necessary
04:54:40 E/adb: * failed to start daemon *
04:54:40 E/adb: error: cannot connect to daemon
:app:installDebug FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:installDebug'.
> com.android.builder.testing.api.DeviceException: Timeout getting device list.
...
cependant, adb devices
renvoie ceci:
List of devices attached
192.168.59.101:5555 device
Jusqu'à présent, je n'ai trouvé aucune solution pour exécuter mon application sur l'émulateur. Quelqu'un at-il rencontré le même problème?
Merci, Paul
Réponses:
Après plus de recherches, j'ai réalisé que Genymotion utilise par défaut son propre adb.
Je suis passé à mon adb principal (le même utilisé par react-native) et cela a résolu le problème. Je suppose que parce que l'adb de Genymotion a été lancé en premier, j'ai reçu le
Address already in use
message d'erreur.la source
/Users/$yourName/Library/Android/sdk
. Si vous avez installé Android, vous devez rechercher votre chemin en fonction de la version Android / de votre plate-forme.J'utilise genymotion, mais la solution de Paul seule n'a pas corrigé l'erreur (pour Mac).
J'ai dû:
Mettez à jour le SDK Android vers la dernière version (24.4.1) via le gestionnaire de SDK
Tapez
android
la ligne de commandeDans le gestionnaire de SDK, recherchez les derniers outils SDK et installez-les.
Une fois installé, le chemin du SDK doit mettre à jour le nouvel emplacement du SDK comme ci-dessous.
Puis mettez à jour $ ANDROID_HOME pour utiliser le nouveau SDK
export ANDROID_HOME=/usr/local/Cellar/android-sdk/24.4.1_1
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
Confirmez qu'il a été ajouté en affichant votre chemin avec
echo $PATH
Ensuite, dans genymotion, faites ce que @Paul dit ci-dessus et indiquez à genymotion ADB d'utiliser le même sdk
la source
$ANDROID_HOME/tools
répertoire ne serait pas nécessaire sur le chemin de classe. Vous devez ajouter pour vous connecter à adb.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:
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:
Cela a produit les résultats:
Navigation vers chaque répertoire et exécution:
M'a permis de voir que Expo exécutait la version ADB:
Alors que Genymotion utilisant le SDK personnalisé avait la version (c: \ Users \ kyle \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb.exe):
Comme test, j'ai pris les fichiers adb (adb.exe, AdbWinApi.dll, AdbWinUsbApi.dll) de
et les a placés dans un dossier de sauvegarde. J'ai ensuite déplacé les fichiers adb situés à
dans ce même endroit. J'ai tué adb avec:
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:
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
la source
Peut-être que vos versions adb ne correspondent pas
Vérifier:
Ensuite:
Si ces deux éléments sont différents, vous avez une erreur ici, supprimez simplement adb de sys et copiez celui qui se trouve dans platform-tools dans / usr / bin /
la source
Si vous souhaitez garder votre système propre, vous pouvez également utiliser Genymotion sans Android Studio :
adb
. Sur macOS, c'est normalement/Applications/Genymotion.app/Contents/MacOS/tools/
.export PATH=/Applications/Genymotion.app/Contents/MacOS/tools/:$PATH
à votre fichier~/.bash_profile
ou~/.bash_rc
.(D'après https://docs.expo.io/versions/latest/workflow/genymotion )
la source
la version adb sur votre système est différente de la version adb sur les outils de la plate-forme android sdk. La suggestion ci-dessous est un travail pour moi pour le système d'exploitation Linux
Pont de débogage Android version 1.0.39
Pont de débogage Android version 1.0.32
[Remarque: la commande ci-dessus supprime l'adb existant puis copiez l'adb du répertoire sdk / platform-tools]
Ensuite, exécutez le projet à l'aide de cette commande
la source
J'ai eu la même chose pendant que j'essayais de courir à partir de l'interface utilisateur de l'expo. J'ai fait les mêmes choses que celles décrites dans les réponses, mais l'application ne fonctionnait pas. Lorsqu'elle a été tentée une fois de s'exécuter à
exp android
partir de la ligne de commande (dans le dossier du projet), l'application s'est exécutée avec succès et la prochaine exécution à partir de l'interface utilisateur d'Expo a réussi.la source
J'ai eu un problème similaire.
Tout d'abord, j'ai désinstallé l'application. Ensuite, j'ai pointé GenyMotion vers le sdk Android fourni par Android Studio. Ensuite, j'ai exécuté "adb kill-server" dans le terminal. Enfin, j'ai relancé "react-native run-android" et j'ai obtenu un succès de compilation.
la source
Les étapes qui ont fonctionné pour moi sont:
$ adb kill-server
$ adb start-server
$ cd android
$ ./gradlew nettoyer
$ cd ..
$ react-native run-android
la source
Pour Ubuntu
Ça marche pour moi!!
Pont de débogage Android version 1.0.39
2 vérifier la version adb sdk
Pont de débogage Android version 1.0.32
c'est tout! Cela fonctionnera maintenant.
la source
1. utilisez le chemin sdk personnalisé dans genymotion. (Supposons que celui-ci ne fonctionne pas signifie, essayez d'exécuter le second)
Utilisez manuellement cette commande pour exécuter (SDK PATH / adb she ll am start -n / Package name / MainActivity).
C: \ Users \ AppData \ Local \ Android \ Sdk / platform-tools / adb she ll am start -n com.example / com.example.ManiActivity
Et essayez d'exécuter l'application en utilisant react-native run-android.
la source
Ce sont les étapes
la source