我正试图从
this github source克隆BlueWallet.
我克隆项目并安装了所需的包.此外,模拟器与android studio AVD一起运行.
但每当我尝试运行npm启动android时它会挂起文本加载依赖图,完成.没有更多的事情会发生!
这很奇怪,因为无论何时我尝试运行相同的场景和命令来启动一个连接到模拟器的纯反应本机,它都可以正常工作.
npm启动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.
最佳答案 我自己找到了解决方案.实际上加载依赖图,完成实际上不是一个错误,服务器不会挂起任何东西.它只是在等待模拟器连接到它.
这是我做的:
>在一个单独的终端中,我确实运行了npm start,这样服务器(packager)正在启动.
>在另一个终端,我运行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和其他env变量;
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>
>如果任务错误执行失败’:app:compileDebugJavaWithJavac’本机发生了反应,在第19行的android / app / src / main / java / com / bluewallet / MainApplication.java中,将其更改为true以忽略调试.此外,这个link也很有用.
>将google()存储库添加到比android / build.gradle文件中的其他位置更高的位置.
>在package.json文件中将react-native的版本更改为0.57.5,然后删除node_modules,然后重新安装.