erreur «Impossible d’obtenir BatchedBridge, assurez-vous que votre ensemble est correctement empaqueté» au démarrage de l’application

Essayer de créer un projet réactif sur Android 4.4.2 J’obtiens cet écran d’erreur

dit erreur

et ne pouvait trouver aucun moyen de le résoudre. J’ai essayé de redémarrer le packager, de reconnecter le périphérique, et même de réinstaller le produit en natif et de démarrer un nouveau projet. Sur 6.0.0 et versions ultérieures, cela fonctionne très bien.

Une solution possible pour cela est que vous n’avez probablement pas regroupé votre application en premier, effectuez les étapes suivantes, puis déployez votre app-debug.apk sur votre appareil.

 $ cd myproject $ react-native start > /dev/null 2>&1 & $ curl "http://localhost:8081/index.android.bundle?platform=android" -o "android/app/src/main/assets/index.android.bundle" 

(si le dossier n’existe pas, créez-le)

Ensuite, exécutez à partir de la racine du projet

 $> (cd android/ && ./gradlew assembleDebug) 

installer l’apk créé sur votre appareil, à partir de l’emplacement: android/app/build/outputs/apk/app-debug.apk

laissez-moi savoir si cela résout votre problème

EDIT :

Vous pouvez simplement le mettre dans votre package.json en tant que script pour l’automatiser, je pense qu’il sera corrigé dans les prochaines versions de react-native et qu’il sera exécuté avant l’assemblage du fichier APK final. ainsi que)

mettre:

 "scripts": { "build": "(cd android/ && ./gradlew assembleDebug)", "start": "node node_modules/react-native/local-cli/cli.js start", "bundle-android": "react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --sourcemap-output android/app/src/main/assets/index.android.map --assets-dest android/app/src/main/res/" }, 

ou comme mentionné l’équivalent curl, mais dans la plupart des cas, ce qui précède est plus robuste

Je suis également tombé sur cette question. Ce que j’ai fait a été de tuer l’application sur mon appareil, puis j’ai ouvert une autre console et j’ai couru

 react-native start 

et puis j’ai rouvert l’application de mon appareil et ça a recommencé à fonctionner.

EDIT: Si vous utilisez un appareil Android via USB et que vous l’avez débranché ou que votre ordinateur s’est éteint, vous devrez peut-être commencer par exécuter

 adb reverse tcp:8081 tcp:8081 

Je viens de recevoir cette erreur. Voici ce que j’ai fait pour corriger: j’ai sélectionné Dismiss , Went dans le menu Developer, puis Dev Settings , Choose Debug server host & port for device , j’ai ajouté l’adresse IP de mes ordinateurs et le port: 192.168.0.xx:8xxx l’adresse IP assignée à vos machines de développement se trouve sur votre réseau wifi. Le port est généralement :8081

Une fois que j’ai fait cela, tout s’est bien passé. De même, alors que vous êtes dans le menu dev, n’oubliez pas de sélectionner Enable Live Reload et Debug JS Remotely , cela vous simplifie beaucoup la vie lors du débogage.

C’est ce qui a fonctionné pour moi (après avoir essayé toutes les autres solutions que j’ai trouvées …):

Exécutez adb reverse tcp:8081 tcp:8081 dans \Android\sdk\platform-tools

Je l’ai eu aussi quand j’ai commencé pour la première fois avec React Native, en utilisant un périphérique physique. Si tel est le cas, vous devez faire des choses supplémentaires avant de pouvoir commencer. Vous devez entrer des informations sur votre machine de développement dans les “Paramètres de développement” de React Native.

Lorsque vous voyez l’erreur, secouez votre appareil . Une boîte de dialog apparaîtra, la dernière option sera “Dev Settings”. Sélectionnez ‘Debug server hot & port for device’ et entrez votre adresse IP locale et le port utilisé (généralement 8081).

Voir le dernier paragraphe de https://facebook.github.io/react-native/docs/running-on-device-android.html

Si aucune solution ne fonctionne, essayez ceci:

J’ai trouvé que mon dossier /android/app/build/intermediates/assets/debug était vide et en exécutant cd android && ./gradlew assembleDebug ne créait pas les fichiers requirejs, qui seront utilisés par la suite avec Javascript applications.

J’ai exécuté manuellement la commande suivante que la commande de génération de débogage aurait dû idéalement créer.

 node node_modules/react-native/local-cli/cli.js bundle --platform android --dev true --reset-cache --entry-file index.android.js --bundle-output //android/app/build/intermediates/assets/debug/index.android.bundle --assets-dest //android/app/build/intermediates/res/merged/debug 

Après avoir exécuté ces commandes, j’ai trouvé deux fichiers bundle dans ce répertoire /android/app/build/intermediates/assets/debug

Et puis, je suis reparti avec cd android && ./gradlew installDebug mon application a recommencé à fonctionner.

Déboguera plus et mettra à jour ce qui échoue réellement.

Dans un terminal distinct , connectez votre appareil à l’ordinateur et exécutez les commandes suivantes:

 react-native start cd user/Library/Android/sdk/platform-tools/ ./adb reverse tcp:8081 tcp:8081 

Terminal d’ application :

 react-native run-android install apk on your device from this location android/app/build/outputs/apk/app-debug.apk 

Essayez cette commande dans le terminal, puis rechargez. Ça a fonctionné pour moi

tcp inverse adb: 8081 tcp: 8081

voir question :

Démarrage 1.react-native

2.Cliquez sur Reload(R,R) sur votre appareil.

C’est un peu tard mais ça marche vraiment pour moi.

  1. react-native run-android .
  2. react-native start .

Première commande va créer apk pour Android et le déployer sur votre appareil si celui-ci est connecté. Lorsque vous ouvrez l’application, l’écran rouge affichera une erreur. Ensuite, exécutez la deuxième commande qui exécutera le conditionneur et construira le lot d’applications pour vous.

J’avais la même exception sur l’appareil Z3 Compact D5803 – 6.0.1

Je suis allé ouvrir le fichier .buckconfig et changé la ligne:

target = Google Inc.:Google APIs:23

à

target = Google Inc.:Google APIs:24

Parce que j’ai vu dans SDK Manager que Android 6.X a api niveau 24.

  1. redémarrer le genymotion
  2. exécuter react-native run-android
  3. le problème a été résolu

Pour moi, c’est parce adb n’était pas dans le PATH . Il est situé /Users/man/Library/Android/sdk/platform-tools pour moi, il peut être ailleurs pour vous, mais de toute façon, trouvez-le et ajoutez-le à votre chemin pour voir si cela vous aide.

Puisque vous utilisez Android <5.0, vous ne pouvez pas utiliser la méthode adb reverse par défaut, mais Facebook a ajouté une documentation officielle pour se connecter au serveur de développement via Wi-Fi , ce qui prendrait en charge votre version. Citant les instructions pour MacOS, mais ils les ont aussi pour Linux et Windows:

Méthode 2: Connexion via Wi-Fi

Vous pouvez également vous connecter au serveur de développement via Wi-Fi. Vous devez d’abord installer l’application sur votre appareil à l’aide d’un câble USB, mais une fois cela fait, vous pouvez déboguer sans fil en suivant ces instructions. Vous aurez besoin de l’adresse IP actuelle de votre machine de développement avant de continuer.

Vous pouvez trouver l’adresse IP dans Préférences Système → Réseau.

Assurez-vous que votre ordinateur portable et votre téléphone sont sur le même réseau Wi-Fi. Ouvrez votre application React Native sur votre appareil. Vous verrez un écran rouge avec une erreur. C’est acceptable. Les étapes suivantes corrigeront cela. Ouvrez le menu du développeur in-app. Accédez à Paramètres de développement → Hôte du serveur de débogage pour le périphérique. Tapez l’adresse IP de votre machine et le port du serveur de développement local (par exemple, 10.0.1.1:8081). Revenez au menu Developer et sélectionnez Reload JS.

Il a eu ce problème “au hasard” et m’a pris quelque temps pour réaliser ce qui n’allait pas dans mon scénario.

Après la mise à jour de la version 2.0.1 de React-native-cli, le journal contenait un message qui m’a aidé à trouver la cause première:

Le serveur JS n’est pas reconnu, continue avec build …

Après avoir recherché quelques liens, j’ai trouvé celui-ci:

Impossible de reconnaître le serveur JS

Comme je suis sous Windows, j’ai lancé netstat et j’ai découvert que mon lecteur VLC fonctionnait également sur le port 8081 à l’origine du problème. Donc, dans mon cas, si je démarrais le serveur vlc avant le serveur réactif, cela ne fonctionnerait pas.

Ce même message de journal ne sortait pas sur les versions précédentes de la commande native-react, ce qui le faisait échouer silencieusement.

TL, DR: vérifiez si quelque chose fonctionne sur le même port que le gestionnaire de paquets (8081 par défaut)

Mon problème était que je suis passé par mon fichier AndroidManifest.xml et que j’avais supprimé la ligne

parce que mon application n’aura pas besoin d’Internet. Cependant, l’application de débogage native nécessite un access Internet (pour accéder au conditionneur). 🙂

J’ai aussi eu cette erreur, vraiment confuse. Toutes les réponses ne fonctionnent pas. Juste après, ajoutez adb au chemin.

Pour moi, la synchronisation latérale était activée et active. La fermer immédiatement a fait disparaître le problème. Il pourrait être utile de fermer cette communication ou toute autre communication entre le PC et le périphérique.

J’ai fini par ouvrir le port que j’utilisais (8081 par défaut). Sous Linux, vous pouvez effectuer les opérations suivantes

 sudo iptables -A INPUT -p tcp --dport 8081 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 8081 -m conntrack --ctstate ESTABLISHED -j ACCEPT 

Vous pouvez tester pour voir si vous avez réellement besoin de le faire. Il suffit de naviguer vers votre serveur de développement dans Chrome sur votre appareil Android. Si elle ne répond pas, cela peut être ce dont vous avez besoin. Si cela répond, cela ne vous aidera pas.

Mon chemin sont les suivants:

 react-native start 

Après cela dans votre appareil en utilisant:

 click to Reload. 

Voir dans la console rea-native, ce seront les données de bundle js.

La plupart d’entre nous font face à ce problème pour la première fois, lorsque nous commençons à réagir au projet natif n ° 1.

Quelques étapes simples ont résolu mon problème:

J’ai créé un exemple de projet à l’aide de la commande: init-ReactProject1

Solution

La solution consiste à aider local-cli \ runAndroid \ adb.js à trouver adb.exe, de la même manière que local-cli \ runAndroid \ runAndroid.js:

Rechercher une instruction de remplacement sous le nom du projet (quoi que vous ayez donné) \ node_modules \ react-native \ local-cli \ runAndroid

Remplacer:

const devicesResult = child_process.execSync (‘périphériques adb’);

Par:

const devicesResult = child_process.execSync ((process.env.ANDROID_HOME? process.env.ANDROID_HOME + ‘/ platform-tools /’: ”) + ‘périphériques adb’);

après avoir effectué le remplacement ci-dessus, lancez simplement run-android natif dans votre cmd, il regroupera apk et essaiera d’abord d’installer localement le bundle js sur votre appareil. (Got Success)

J’ai eu le même problème. Lorsque j’ai créé un projet natif de réaction via create-react-native-app, AwesomeProject a bien fonctionné dans l’application Expo sur le téléphone. Après cela, j’ai voulu utiliser ce projet quickstart pour développer mon projet et j’ai eu la même erreur que vous.

Après quelques recherches, je trouve qu’il est préférable de démarrer un nouveau projet avec init AwesomeProject (avec tous les parameters dans les docs natifs) Puis lancez cette commande:

 react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/ 

Cela devrait réparer la chose avec bundle (–dev false ne montre pas les avertissements)

Tout ce que vous devez faire pour que l’application s’exécute sur votre périphérique virtuel / réel est la suivante:

 react-native run-android 

Et ça devrait marcher très bien. Au moins ça a fonctionné pour moi.

Pour moi, le problème était que “adb” n’était pas reconnu – vérifiez cette réponse.

Pour corriger cela, ajoutez C: \ Users \ USERNAME \ AppData \ local \ Android \ sdk \ platform-tools aux variables d’environnement

Veuillez vérifier si vous avez l’erreur suivante lorsque vous exécutez react-native run-android adb server version (XX) doesn't match this client (XX); killing... : la adb server version (XX) doesn't match this client (XX); killing... adb server version (XX) doesn't match this client (XX); killing...

Dans ce cas, assurez-vous que /usr/local/opt/android-sdk/platform-tools/adb et /usr/local/bin/adb sont dirigés vers le même adb

Dans mon cas, l’un des utilisateurs était /Users/sd/Library/Android/sdk/platform-tools/adb (Android SDK), mais un autre pointait vers /usr/local/Caskroom/android-platform-tools/26.0.2/platform-tools/adb (Homebrew)

Et le problème a été résolu après que les deux aient pointé vers /Users/sd/Library/Android/sdk/platform-tools/adb (Android SDK)

J’ai essayé plusieurs des suggestions ci-dessus / ci-dessous, mais finalement, le problème que j’ai rencontré était une autorisation avec gardien, qui a été installé en utilisant Homebrew plus tôt. Si vous regardez vos messages de terminal en essayant d’utiliser l’émulateur et rencontrez des erreurs “Autorisation refusée” en ce qui concerne le serveur de surveillance avec ce message “Impossible d’obtenir BatchedBridge” sur votre émulateur, procédez comme suit:

Accédez au répertoire /Users//Library/LaunchAgents et modifiez les parameters d’autorisation afin que votre utilisateur puisse lire et écrire. Ceci est indépendamment du fait que vous ayez ou non un fichier com.github.facebook.watchman.plist .

J’ai trouvé que je devais aussi append un

mise à niveau native

pour que l’application s’exécute correctement.

Essayez de nettoyer le cache

commencer à réagir –reset-cache

J’ai eu le même problème mais c’était une erreur stupide de ma part …

Depuis le studio Android , je lançais le script installDebug installDebug/installRelease gradle depuis l’ app projet au lieu du projet root .

Manière la plus simple!

  • Arrêtez le serveur et terminez la construction du projet.
  • Ouvrez un terminal ‘Node.js’.
    • Naviguez vers le dossier avec le projet ‘rea-native’.
    • Tapez ‘start-start réactif’ – Démarrage manuel du serveur natif de réaction.
  • Accédez à votre terminal de l’éditeur de code et tapez «run-android native.

Tu es bon pour y aller!

Solution: dans le répertoire “react-native”: après la commande run “./gradlew: Exemples: UIExplorer: android: app: installDebug” avec succès, exécutez commnad ” ./packager/packager.sh ” avec succès. puis cliquez sur “App UIExplorer” dans l’émulateur ou l’appareil