npm run android 挂起“加载依赖图,完成”(BlueWallet)

Posted

技术标签:

【中文标题】npm run android 挂起“加载依赖图,完成”(BlueWallet)【英文标题】:npm run android hangs on 'Loading dependency graph, done' (BlueWallet) 【发布时间】:2019-03-08 17:11:38 【问题描述】:

我正在尝试从 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.

【问题讨论】:

当应用已经安装在设备上时使用 react-native start。当我们需要在设备上安装应用程序并启动服务器时,使用 react-native run-android。但是当我们在项目中安装新包时,我们需要使用 react-native run-android 重启服务器 我的问题是它卡在Loading dependency graph, done.。但是当我用模拟器启动一个纯 react-native 应用程序时,将没有问题。 关闭应用程序并在您的设备中重新打开它,同时打包程序仍在运行。 关闭什么应用?我正在尝试创建实时开发模式,以便我的更改显示在模拟器上。默认情况下它会在创建的模拟器之间建立连接,但不知道为什么这个项目没有发生。 【参考方案1】:

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

这是我所做的:

在单独的终端中,我确实运行了npm start,这样服务器(打包程序)正在启动。

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

注意:我确实对项目的某些部分做了一些曲折,并在操作系统上做了如下的事情。如果将来有人想做同样的事情,也许对他有用:

将 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以忽略调试。另外,这个link 也很有用。

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

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

【讨论】:

【参考方案2】:

在我的情况下,当应用程序运行出现有关“BASE_MAP.fill(255)”的错误时,我尝试使用“react-native run-android”。然后我运行“npm run prepare”来解决上面提到的错误。希望我的解决方案能帮到你。

The app runs in my Android

【讨论】:

【参考方案3】:

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

react-native start --port=8082

【讨论】:

抱歉,这不是正确的解决方案,因为它已经在端口 8081 上运行良好。正如我所说的它正在运行,我只需要在 Android 上也运行它,以便 android 模拟器可以连接到它。

以上是关于npm run android 挂起“加载依赖图,完成”(BlueWallet)的主要内容,如果未能解决你的问题,请参考以下文章

react-native:无法识别命令“run-android”。可能是由 npm install 引起的

我收到此错误任务执行失败:app:processDebugMainManifest 使用 npm run android 运行但使用 android studio 运行正常

运行 npm react-native run-android 时突然出错。任务:app:processDebugResources 失败

React Native - 运行“npm start”和“react-native run-android”时出错

npm 在安装后/解锁时挂起

在 Jenkins 中:如何运行 NPM install 、 npm run 和 Npm run 代理