npm 运行 android 挂在 'Loading dependency graph, done' (BlueWallet)

npm run android hangs on 'Loading dependency graph, done' (BlueWallet)

我正在尝试从 this github source 克隆 BlueWallet。

我克隆了项目并安装了所需的包。另外,模拟器是 运行 android studio AVD.

但每当我尝试 运行 npm start android 时,它就会挂在文本 Loading dependency graph, done. 上,再也不会发生了!

这很奇怪,因为每当我尝试 运行 相同的场景和命令来启动连接到模拟器的纯 react-native 时,它​​都可以正常工作。

npm start android的结果如下:

$ 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.

我自己找到了解决方案。实际上 Loading dependency graph, done 实际上不是错误,服务器也没有挂起任何东西。它只是在等待模拟器连接它。

这是我所做的:

  • 在一个单独的终端中,我做了 运行 npm start,这样服务器(打包程序)就启动了。

  • 在另一个终端,我运行npm run android。现在将选择模拟器并将连接到 8081 端口,第一个命令的服务器是 运行ning,一切都会好起来的。

注意:我确实对项目的某些部分进行了一些改动,并在 OS 上做了如下操作。如果以后有人想做同样的事情,也许对他有用:

  • 设置 java home 变量正确(将其添加到 bashrcprofile 或 ..)

    export JAVA_HOME="/usr/lib/jvm/java-10-openjdk"
    export PATH=$JAVA_HOME/bin:$PATH
    
  • 设置android SDK和其他环境变量;

    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
    
  • 到运行模拟器

    $ emulator -list-avds
    $ emulator -avd <avd name>
    
  • 如果出现错误Execution failed for task ':app:compileDebugJavaWithJavac' react native,在第19行的android/app/src/main/java/com/bluewallet/MainApplication.java中,将其改为return true忽略调试。另外,这个 也很有用。

  • google() 存储库添加到 android/build.gradle 文件中高于其他存储库的位置。

  • package.json 文件中将 react-native 的版本更改为 0.57.5 并删除 node_modules 然后重新安装。

我有时会遇到这个问题,特别是当你按 ctrl+c 关闭节点服务器时 id 做了一些事情,比如卸载节点并安装较低版本,然后安装最新版本 运行 另一个端口上的节点服务器

react-native start --port=8082

在我的例子中,当应用程序 运行 出现关于 "BASE_MAP.fill(255)" 的错误时,我尝试使用 "react-native run-android"。然后我运行"npm run prepare"解决了上面提到的错误。希望我的解决方案可以帮到你。

The app runs in my Android