我正在尝试测试我的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安装指南。
更新
我与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端口,所以它不允许创建一个新的。我关闭了远程调试器,它运行没有问题。我不确定这可能是问题所在。
答案 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)
答案 2 :(得分:0)
在我的情况下,只清理缓存很有帮助:
npm cache clean --force
.android/gradlew clean
答案 3 :(得分:0)
在我的情况下,完全没有错误并且构建成功,构建器在构建和应用崩溃后退出。
这是您解决的问题, 退出后,只需输入
yarn start
您的本机应已启动并运行。
希望有帮助。