' React native run android'在模拟器中启动应用程序后立即停止

时间:2017-03-10 12:49:56

标签: android android-studio react-native

我正在尝试测试我的Android应用程序,但是当我在设备启动后使用react-native run-android命令启动它时,中途停止而没有错误。

我明白了:

This build could be faster, please consider using the Gradle Daemon: https://docs.gradle.org/2.14.1/userguide/gradle_daemon.html
Running adb -s emulator-5556 reverse tcp:8081 tcp:8081
Starting the app on emulator-5556 (adb -s emulator-5556 shell am start -n com.app/.MainActivity)...
Starting: Intent { cmp=com.app/.MainActivity }

我收到提示但不总是,如果我继续尝试它有时运行正常,但我必须运行10-15次。 SDK版本为25,我遵循React Native Getting Started安装指南。

  • 操作系统:Fedora 24
  • React-native:0.42.0

更新

我与react-native start一起试用了Loading dependency graph... ERROR Packager can't listen on port 8081,但是我不明白为什么以前的命令没有为我说过。在这种情况下,我可以使用--port 9000更改端口,但我没有在react-native run-android命令中找到任何其他标志。

更新2:

似乎问题出现了,因为远程调试器在设备上打开并且它连接到:8081端口上的远程调试器,而adb想通过以下方式为移动应用程序创建新服务器:8081有一段时间,旧的远程调试仍然占用:8081端口,所以它不允许创建一个新的。我关闭了远程调试器,它运行没有问题。我不确定这可能是问题所在。

4 个答案:

答案 0 :(得分:6)

我在ubuntu遇到同样的问题对我有用的是我关闭终端从usb重新启动我的设备。首先,建议你在packages.json中添加这些行,用这个

替换脚本
"scripts": {
"prepare-repository": "npm i -g react-native-cli yarn;yarn install; react- native link",
"emulator": "emulator -avd Nexus5V6L23_x86_64 -scale 1.0",
"install": "react-native run-android",
"start": "react-native start --reset-cache",
"android": "npm run install && npm run start",
"clean": "watchman watch-del-all && npm cache clean && cd android && ./gradlew clean && cd ..",
"test": "jest"
}

之后保存它然后转到你创建项目的文件夹。让我们说我的家/工作区/演示。在那个运行脚本里面

 npm run clean //this will clear all cache

之后

npm run android 

它将在设备中运行应用程序以及启动重置缓存。让我知道它是否有帮助。

有时添加

adb reverse tcp:8081

在运行npm之前运行android就可以了 我建议你启用Gradle守护进程,这样可以让你的构建更快。要启用它,请转到android-> gradle.properties并在该文件中写入

org.gradle.daemon=true

答案 1 :(得分:3)

我遇到了同样的问题,问题在这里描述port already in use。所以只需杀死占用端口的进程。

sudo lsof -i :8081

kill -9 <PID>

答案 2 :(得分:0)

在我的情况下,只清理缓存很有帮助:

npm cache clean --force  
.android/gradlew clean

答案 3 :(得分:0)

在我的情况下,完全没有错误并且构建成功,构建器在构建和应用崩溃后退出。

这是您解决的问题, 退出后,只需输入

yarn start

您的本机应已启动并运行。

希望有帮助。