5
votes

npm run android se bloque sur `` Chargement du graphique de dépendance, terminé '' (BlueWallet)

J'essaye de cloner BlueWallet à partir de cette source github .

Je clone le projet et installé les packages requis. En outre, l'émulateur fonctionne avec Android Studio AVD.

Mais chaque fois que j'essaie d'exécuter npm start android , il se bloque sur le texte Chargement du graphique de dépendance, terminé. Code > et il ne se passera plus rien!

C'est bizarre parce que chaque fois que j'essaie d'exécuter le même scénario et les mêmes commandes pour démarrer un pur react-native connecté à l'émulateur, cela fonctionne sans problème.

le résultat pour npm start android est le suivant:

$ npm start android

> BlueWallet@3.8.3 start /home/Learning/ReactNative/BlueWallet
> node node_modules/react-native/local-cli/cli.js start "android"

   ┌─────────────────────────────────────────────────────────────────────────────        ─┐
│                                                                                  │
│  Running Metro Bundler on port 8081.                                             │
│                                                                                  │
│  Keep Metro running while developing on any JS projects. Feel free to            │
│  close this tab and run your own Metro instance if you prefer.                   │
│                                                                                  │
│  https://github.com/facebook/react-native                                        │
│                                                                                  │
└─────────────────────────────────────────────────────────────────────────────    ─┘

Looking for JS files in
   /home/Learning/ReactNative/BlueWallet 

Loading dependency graph, done.


4 commentaires

Utilisation du démarrage natif de réaction lorsque l'application est déjà installée sur l'appareil. Utilisation de react-native run-android lorsque nous devons installer l'application sur l'appareil et démarrer le serveur. Mais lorsque nous avons installé un nouveau package dans notre projet, nous devons redémarrer le serveur à l'aide de react-native run-android


mon problème est qu'il reste bloqué au Chargement du graphique de dépendance, terminé. . Mais lorsque je démarre une application native de réaction pure avec Android avec l'émulateur, cela fonctionnera sans problème.


Fermez l'application et rouvrez-la dans votre appareil, pendant que le conditionneur est toujours en cours d'exécution.


fermer quelle application? J'essaie de créer un mode de développement en direct afin que mes modifications soient affichées sur l'émulateur. Par défaut, il crée une connexion entre l'émulateur fondé, mais je ne sais pas pourquoi pour ce projet cela ne se produit pas.


3 Réponses :


3
votes

J'ai trouvé la solution moi-même. En fait, Chargement du graphe de dépendances, terminé n'est en fait pas un bogue et le serveur ne se bloque sur rien. Il attend juste que l'émulateur s'y connecte.

Voici ce que j'ai fait:

  • Dans un terminal séparé, j'ai exécuté npm start , de cette façon le serveur (packager) démarre.

  • Dans un autre terminal, j'exécute npm run android . Maintenant, l'émulateur sera sélectionné et se connectera sur le port 8081 sur lequel le serveur de la première commande est en cours d'exécution et tout ira bien.

Note : J'ai fait quelques rebondissements sur certaines parties du projet et j'ai fait quelque chose sur le système d'exploitation comme suit. Si quelqu'un à l'avenir voulait faire de même, peut-être lui être utile:

  • définissez la variable java home comme étant correcte (ajoutez-la à bashrc ou profile ou ..)

    $ emulator -list-avds
    $ emulator -avd <avd name>
    
  • définir le SDK Android et d'autres variables d'environnement;

    export ANDROID_HOME=/home/execut3/android-sdk
    export ANDROID_SDK_ROOT=/home/execut3/android-sdk
    export JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'
    export PATH=$ANDROID_HOME/emulator:$ANDROID_HOME/tools:$PATH
    
  • pour exécuter l'émulateur

    export JAVA_HOME="/usr/lib/jvm/java-10-openjdk"
    export PATH=$JAVA_HOME/bin:$PATH
    
  • En cas d'échec de l'exécution de l'erreur pour la tâche ': app: compileDebugJavaWithJavac' react native , dans android / app / src / main / java / com / bluewallet / MainApplication.java à la ligne 19, changez-le en return true pour ignorer le débogage. De plus, ce lien pourrait également être utile.

  • ajoutez le référentiel google () à une place plus élevée que les autres dans le fichier android / build.gradle .

  • changer la version de react-native en 0.57.5 dans le fichier package.json et supprimer node_modules code> puis réinstaller.


0 commentaires

-1
votes

Je suis parfois confronté à ce problème, spécialement lorsque vous tuez le serveur de nœuds en appuyant sur ctrl + c id a fait des choses comme désinstaller le nœud et installer une version inférieure et le n installer la dernière version exécution du serveur de nœuds sur un autre port

react-native start --port=8082


1 commentaires

Désolé mais ce n'est pas la bonne solution, car il fonctionne déjà sur le port 8081 très bien. Comme je l'ai dit, il est en cours d'exécution, je n'ai besoin de l'exécuter que sur Android pour que l'émulateur Android puisse s'y connecter.



0
votes

Dans mon cas, j'essaye avec "react-native run-android" quand l'application lance une erreur sur "BASE_MAP.fill (255)" apparaît. Ensuite, je lance "npm run prepare" qui résout l'erreur ci-dessus. J'espère que ma solution pourra vous aider.

L'application fonctionne sur mon Android


0 commentaires