react-native run-android
La commande se termine en laissant un message dans le simulateur Android. Le message est le suivant:
Impossible de charger le script Assurez-vous que vous exécutez un serveur Metro ou que votre bundle «index.android.bundle» est correctement emballé pour la publication.
Qu'est-ce que je fais mal?
reactjs
react-native
react-native-android
react-native-cli
metro-bundler
Belle Solutions
la source
la source
Réponses:
Vous n'avez pas encore démarré le bundler. Exécutez
npm start
oureact-native start
dans le répertoire racine de votre projet avantreact-native run-android
.la source
Ces étapes m'aident vraiment:
Étape 1: Créez un répertoire dans android / app / src / main / assets
Commande Linux :
mkdir android/app/src/main/assets
Étape 2: Renommez
index.android.js
(dans le répertoire racine) enindex.js
( Peut-être qu'il y a unindex.js
fichier auquel cas vous n'avez pas besoin de le renommer ) puis exécutez la commande suivante:Étape 3: Créez votre APK:
react-native run-android
Veuillez utiliser index.js dans la dernière version.
Prendre plaisir :)
la source
index.js
fichier dans le répertoire racine, auquel cas vous n'avez pas besoin de le renommerPour moi, cette erreur a été causée par une mise à niveau de react-native
Si vous consultez le diff de mise à niveau, vous devez créer un manifeste de débogage
android/app/src/debug/AndroidManifest.xml
Voir pour plus d'informations: https://stackoverflow.com/a/50834600/1713216
https://react-native-community.github.io/upgrade-helper/
la source
android:usesCleartextTraffic="true"
dans le menu principalAndroidManifest.xml
si cela fonctionne?Vous pouvez essayer ce qui suit:
Ajoutez cette ligne sur votre AndroidManifest.xml
la source
Un problème similaire s'est produit avec moi.
Apparemment, Mcafee bloque le port 8081. Il m'a fallu des heures pour comprendre cela.
Essayez de courir:
Lorsque l'application apparaît avec une erreur sur l'émulateur, accédez aux paramètres de développement ( Ctrl+M ).
Remplacez «hôte de débogage et port du périphérique» par «localhost: 1234».
Fermez l'application et démarrez-la à partir du tiroir d'applications.
la source
Effectuez d'abord les étapes 4 et 5, puis vous pouvez exécuter votre projet. Si vous n'obtenez pas le résultat (avec les étapes 4 et 5), procédez comme suit
1- Essayez de rétrograder la version de votre Node (la version actuelle est
12.13.1
)2- Ajouter le chemin du module npm (
C:\Users\your user name\AppData\Roaming\npm
) aux variables système au lieu des variables utilisateur3- Installez react native globalement en utilisant la commande
4- Allez à la racine de votre répertoire de projet et exécutez la commande suivante:
5- Ouvrez un autre terminal à la racine de votre projet et exécutez la commande suivante:
ÉDITER :
Vous utilisez Genymotion? Si oui, procédez comme suit:
Après l'étape ci-dessus si vous obtenez l'erreur suivante?
Ouvrez votre genymotion et accédez à:
genymotion menu -> Settings -> ADB -> Puis sélectionnezuse custom android sdk tools (cliquez sur parcourir pour trouver l'emplacement du sdk)
Enfin, exécutez à nouveau votre projet.
la source
ajoutez simplement trois éclaboussures dans: node_modules \ metro-config \ src \ defaults \ blacklist.js
remplacer cette pièce:
la source
si tout est correctement configuré, essayez ceci:
adb reverse tcp: 8081 tcp: 8081
Pourquoi? "Lorsque RN Packager est en cours d'exécution, un serveur Web actif est accessible dans votre navigateur à l'adresse 127.0.0.1:8081. C'est à partir de ce serveur que le bundle JS de votre application est servi et actualisé au fur et à mesure que vous apportez des modifications. Sans le proxy inverse, votre téléphone ne pourra pas se connecter à cette adresse. "
tous les crédits à Swingline0
la source
[Réponse rapide]
Après avoir essayé de résoudre ce problème dans mon espace de travail, j'ai trouvé une solution.
Cette erreur est due au fait qu'il y a un problème avec Metro en utilisant certaines combinaisons de version NPM et Node.
Vous avez 2 alternatives:
Alternative 2: Accédez à ce fichier:
\node_modules\metro-config\src\defaults\blacklist.js
et modifiez ce code:et changez en ceci:
la source
Cela a fonctionné pour moi après avoir essayé plusieurs façons.
Dans le fichier
node_modules\metro-config\src\defaults\blacklist.js
Remplacer:
avec :
J'espère que cela t'aides.
la source
metro-config
utilisé \ pour les chemins au lieu de /, que cette réponse suggère de modifier. Ne fais pas ça . La modification des packages npm signifie que toute votre équipe doit le faire sur sa machine, en CI, en préparation, en production et à chaque fois que metro-config publie une mise à jour. Une meilleure approche consiste à fourcher metro-config sur GitHub, à valider un correctif, à pousser et à soumettre un PR pour le corriger pour tout le monde.À partir d'Android 9.0 (niveau d'API 28), la prise en charge du texte clair est désactivée par défaut.
C'est ce que vous devez faire pour vous débarrasser de ce problème si vous exécutez correctement les commandes normales
Et modifiez votre fichier manifeste Android comme ceci.
la source
Après des heures à chercher une réponse. La solution était de faire un nœud de rétrogradation vers la version 12.4.
Dans mon cas, je me rends compte que l'erreur se produit simplement dans la version react native 0.60 avec la version noeud 12.6.
la source
Ma solution à cela est la suivante:
Démarrer le serveur Metro
Démarrez Android
Si vous voyez des erreurs indiquant «port 8081 déjà utilisé», vous pouvez arrêter ce processus et le réexécuter
Voir la page de dépannage de React Native .
la source
Si vous êtes sous Linux, ouvrez le terminal à partir du répertoire racine de l'application et exécutez
puis ouvrez une autre fenêtre de terminal et exécutez:
la source
Je veux juste ajouter une possibilité non évidente qui n'est pas couverte ici. J'utilise @ react-native-community / netinfo pour détecter les changements de réseau, principalement l'état du réseau. Pour tester l'état du réseau hors tension, le commutateur WIFI (sur l'émulateur) doit être désactivé. Cela coupe également efficacement le pont entre l'émulateur et l'environnement de débogage. Je n'avais pas réactivé le WIFI après mes tests car j'étais loin de l'ordinateur et je l'avais rapidement oublié à mon retour.
Il est possible que cela soit également le cas pour quelqu'un d'autre et qu'il vaut la peine de vérifier avant de prendre d'autres mesures drastiques.
la source
J'avais le même problème, le problème pour moi était que adb n'était pas dans le bon chemin d'environnement, l'erreur vous indique le port de métro, pendant que vous êtes dans l'adb, les ports sont tués et redémarrés.
Ajouter une variable d'environnement (ADB)
Exécutez à nouveau Android Build
Ou
la source
J'ai également été confronté à ce problème. J'ai résolu cette étape suivante.
Vérifiez le chemin du sdk android dans Environment Veritable.
Ajouter
ANDROID_HOME = C:\Users\user_name\AppData\Local\Android\Sdk
à la variable systèmeet
C:\Users\user_name\AppData\Local\Android\Sdk\platform-tools
chemin variable systèmeremplacer sharedBlacklist comme ci-dessous le segment de code,
dans node_modules / metro-config / src / default / blacklist.js
Ensuite, exécutez npx react-native run-android --port 9001
Bon codage ..!
la source
J'ai vécu cela simplement parce que mon Wifi a été désactivé par erreur sur mon émulateur, je l'ai rallumé et il a commencé à fonctionner correctement. J'espère que c'est utile à quelqu'un
la source
la possibilité de cette erreur est également le mauvais chemin, vérifiez une fois
la source
La solution qui a fonctionné pour moi est la suivante:
la source
mettre à jour cette pièce dans la liste noire du métro
la source
J'ai rencontré le même problème en suivant le tutoriel React Native (développement sous Linux et ciblage Android).
Ce problème m'a aidé à résoudre le problème dans les étapes suivantes. Exécutez les commandes suivantes dans l'ordre ci-dessous:
mkdir android/app/src/main/assets
react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
react-native run-android
Vous pouvez automatiser les étapes ci-dessus en les plaçant dans une
scripts
partie depackage.json
comme ceci:Ensuite, vous pouvez simplement exécuter à
npm run android-linux
partir de votre ligne de commande à chaque fois.la source
Par défaut, un petit serveur JavaScript appelé "Metro Server" s'exécute sur le port 8081.
Vous devez rendre ce port disponible pour que ce serveur démarre. Alors,
Comment libérer le port?
http://tenbull.blogspot.com/2019/05/how-to-kill-process-currently-using.html
Comment tuer le processus utilisant actuellement un port sur localhost dans Windows?
et surtout, j'ai mis à jour ma version de nœud de 8.x à 10.x (dernière), comme suggéré par facebook @ https://facebook.github.io/react-native/docs/getting-started
la source
Pour moi, ce problème a commencé avec la mise à niveau de react-native. La mise à niveau était nécessaire pour ajouter la prise en charge 64 bits.
De plus, une modification importante que j'ai apportée à la mise à niveau était dans ../android/build/build.gradle
J'ai dû changer la targetSdkVersion de 27 à 28 après l'avertissement lorsque j'ai essayé de télécharger la version (.apk) sur la console de jeu goole. Je n'avais pas réalisé que c'était pour moi la cause première de l'erreur ci-dessus. Les réponses immédiates de @tom et @tinmarfrutos avaient un sens absolu.
J'ai résolu le problème en ajoutant android: usesCleartextTraffic = "true" à mon android / app / src / debug / AndroidManifest.xml
la source
Dans mon cas, j'ai défini un proxy dans mon émulateur. Cela revient à la normale après avoir supprimé ce proxy.
la source
IMPORTANT - Vous pouvez avoir de nombreux périphériques virtuels dans votre environnement. Assurez-vous que si vous changez AVD, vous répétez à nouveau le réglage.
INFORMATIONS DE DÉBOGAGE-
Si vous rencontrez une erreur ci-dessus, vous devez d'abord vérifier ce qui fonctionne sur le port 8081
Le moyen le plus rapide de trouver cela utilise la commande suivante dans le terminal
si cela vous montre quelque chose, cela signifie que le port est bloqué. si possible obtenir ce port débloqué.
Sinon, vous devrez changer le port. Le processus pour le faire a déjà été mentionné dans le commentaire ci-dessus par Naveen Kumar
Assurez-vous que 9001 n'est pas utilisé non plus :)
la source
Essayez ces étapes si vous avez essayé tout ce qui est mentionné dans les solutions ci-dessus:
la source
Essayez ce qui suit.
Peut-être qu'après les étapes précédentes, vous avez des exécutions npm start - --reset-cache
Je travaille, j'espère que cela vous aide.
la source
Si vous utilisez un système d'exploitation Linux, il se peut que votre serveur distant npm ne fonctionne pas. Ouvrez un autre terminal (avec le répertoire du projet) et exécutez cette commande sudo npm start ou sudo react-native start avant de faire sudo react-native run-android
la source
Le message d'erreur sur l'émulateur est un peu trompeur. Dans mon cas, j'ai utilisé un Macbook. J'avais besoin de modifier les autorisations sur android / gradlew en exécutant
$ chmod 755 ./gradlew
, puis l'application pourrait être créée et déployée sur l'émulateur Android.la source