【问题标题】:'React native run android' stop immediatelly after start the app in emulator'React native run android' 在模拟器中启动应用程序后立即停止
【发布时间】:2017-07-31 19:49:03
【问题描述】:

我正在尝试测试我的 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
  • 反应原生: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 端口,因此不允许创建新的。我关闭了远程调试器,它运行没有问题。我不确定这可能是问题所在。

【问题讨论】:

  • 您是否尝试过先在 Android Studio 中打开应用? Gradle 运行测试构建并建议缺少的包。它可能会解决 Android 版本的一些问题。
  • @AnnaMelzer 我更新了帖子。

标签: android android-studio react-native


【解决方案1】:

我在 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 run android 之前就可以了 我会推荐你​​启用 Gradle 守护进程,它确实让你的构建速度更快。要启用它,请转到 android->gradle.properties 并在该文件中写入

org.gradle.daemon=true

【讨论】:

  • 我会尝试很多东西,但没有用。显示此错误正在启动应用程序 7LBQ89ZHLNEMLJZL (adb -s 7LBQ89ZHLNEMLJZL shell am start -n com.app/.MainActivity)... 开始: Intent { cmp=com.app/.MainActivity }
  • 使用 adb,我收到错误 adb: usage: forward takes two arguments。最好使用命令adb reverse tcp:8081 tcp:8081
【解决方案2】:

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

sudo lsof -i :8081

kill -9 <PID>

【讨论】:

    【解决方案3】:

    就我而言,清理缓存很有帮助:

    npm cache clean --force  
    .android/gradlew clean
    

    【讨论】:

      【解决方案4】:

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

      这就是你解决它, 退出后,输入

      yarn start
      

      你的 react-native 应该已经启动并运行了。

      希望对你有帮助。

      【讨论】:

        猜你喜欢
        • 2019-12-23
        • 2013-07-19
        • 1970-01-01
        • 2020-04-17
        • 1970-01-01
        • 2019-08-07
        • 1970-01-01
        • 2021-12-29
        • 2020-04-02
        相关资源
        最近更新 更多