web-dev-qa-db-fra.com

"Réagir natif exécuter Android" arrêter immédiatement après le démarrage de l'application dans l'émulateur

J'essaie de tester mon application Android, mais lorsque je la lance avec la commande react-native run-Android après son démarrage sur l'appareil, elle s'arrête immédiatement sans erreur. 

J'ai eu ceci: 

This build could be faster, please consider using the Gradle Daemon: https://docs.gradle.org/2.14.1/userguide/gradle_daemon.html
Running adb -s emulator-5556 reverse tcp:8081 tcp:8081
Starting the app on emulator-5556 (adb -s emulator-5556 Shell am start -n com.app/.MainActivity)...
Starting: Intent { cmp=com.app/.MainActivity }

Une fois que j'ai reçu l'Invite, mais pas toujours, si je continue d'essayer, il fonctionne parfois correctement mais je dois l'exécuter 10 à 15 fois. La version du SDK est 25 et j'ai suivi le guide d'installation de React Native Getting Started. 

  • Système d'exploitation: Fedora 24 
  • React-native: 0.42.0

METTRE À JOUR:

J'ai essayé avec react-native start et cela a été dit pour moi Loading dependency graph... ERROR Packager can't listen on port 8081 mais je ne comprends pas pourquoi la commande précédente ne l'a pas dit pour moi. Dans ce cas, je peux changer le port avec le --port 9000, mais je n'ai trouvé aucun autre indicateur pour la commande dans le react-native run-Android

MISE À JOUR 2:  

Le problème semble provenir du fait que le débogueur distant a allumé l'appareil et qu'il est connecté au débogueur distant sur le port: 8081 et que l'adb a voulu créer un nouveau serveur pour l'application mobile via le: 8081 pendant un certain temps occupe toujours le port: 8081, il n’a donc pas été autorisé à en créer un nouveau. J'ai éteint le débogueur distant et il s'exécute sans problème. Je ne suis pas sûr qu'il soit possible que ce soit le problème. 

7
PumpkinSeed

j'avais le même problème à Ubuntu, ce qui a bien fonctionné pour moi, c’est que j’ai fermé le terminal qui a enlevé mon appareil de USB redémarré tout d’abord, vous suggéreriez d’ajouter ces lignes dans votre package.json, remplacez les scripts par cette

"scripts": {
"prepare-repository": "npm i -g react-native-cli yarn;yarn install; react- native link",
"emulator": "emulator -avd Nexus5V6L23_x86_64 -scale 1.0",
"install": "react-native run-Android",
"start": "react-native start --reset-cache",
"Android": "npm run install && npm run start",
"clean": "watchman watch-del-all && npm cache clean && cd Android && ./gradlew clean && cd ..",
"test": "jest"
}

Après cela, sauvegardez-le puis allez dans le dossier où vous avez créé le projet. disons mien maison/espace de travail/démo. Dans ce script d'exécution

 npm run clean //this will clear all cache

après ça

npm run Android 

Il lancera l'application dans l'appareil ainsi que le cache de démarrage-réinitialisation. Faites-moi savoir si cela vous aide.

Ajoutant parfois 

adb reverse tcp:8081

avant de lancer npm run, Android fait le tour Je vous recommanderai d’activer le démon Gradle pour rendre votre compilation plus rapide. Pour l'activer, ouvrez Android-> gradle.properties et écrivez dans ce fichier

org.gradle.daemon=true
6
Nitesh Mishra

J'ai eu le même problème et le problème est décrit ici port déjà utilisé . Donc, tuez le processus qui occupe le port. 

Sudo lsof -i :8081

kill -9 <PID>

1
Bardolf

Dans mon cas, nettoyer la cache était utile: 

npm cache clean --force  
.Android/gradlew clean
0
Footniko