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 变量设置为正确(将其添加到 bashrc
或 profile
或 ..)
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 失败