【问题标题】:ReactNative build for android just freezes over the last stepReact Native 为 android 构建只是冻结在最后一步
【发布时间】:2017-04-06 21:47:17
【问题描述】:

我一如既往地开发了一个 React Native 项目;当我在执行react-native run android 或等效cd android && ./gradlew installDebug 后遇到以下错误时。 捕获此异常只是在最后一步:`

:app:assembleDebug
:app:installDebug
Exception in thread "Device List Monitor" java.lang.NullPointerException
        at com.android.ddmlib.EmulatorConsole.checkConnection(EmulatorConsole.java:317)
        at com.android.ddmlib.EmulatorConsole.getConsole(EmulatorConsole.java:231)
        at com.android.ddmlib.DeviceMonitor.queryAvdName(DeviceMonitor.java:248)
        at com.android.ddmlib.DeviceMonitor.updateDevices(DeviceMonitor.java:220)
        at com.android.ddmlib.DeviceMonitor.access$400(DeviceMonitor.java:65)
        at com.android.ddmlib.DeviceMonitor$DeviceListUpdateListener.deviceListUpdate(DeviceMonitor.java:662)
        at com.android.ddmlib.DeviceMonitor$DeviceListMonitorTask.processIncomingDeviceData(DeviceMonitor.java:847)
        at com.android.ddmlib.DeviceMonitor$DeviceListMonitorTask.run(DeviceMonitor.java:781)
        at java.lang.Thread.run(Thread.java:745)
> Building 97% > :app:installDebug`

我正在使用 react-native 版本 0.43.2 和 react-native-cli 2.0.1 以及 npm 4.1.2 和 yarn 0.21.3 进行编码; Ubuntu 16.04。所以一切都被最新版本武装到了牙齿,但我仍然无法弄清楚问题所在。即使是我刚刚由react-native init 创建的项目也会发生这种情况,它无处不在。 :( 附:确保我的模拟器已启动并正在运行,并且问题不是由它引起的。

【问题讨论】:

    标签: android react-native compilation


    【解决方案1】:

    尝试重启 adb in 使其探测本地 5554 端口

    killall adb; adb devices
    

    【讨论】:

    • 在我的情况下,我还必须杀死 Android 模拟器,这是一个名为“qemu-system-x86_64”的进程
    • @this.lau_ 如果你杀死 Android 模拟器,你打算如何运行你们所有人?您没有连接任何设备...
    【解决方案2】:

    实际上,我从来没有找到问题的原因或解决方案。但据我所知,我继续我的日常工作,一两天后(在此期间有几次重新启动)它又开始工作了。直到现在,我还没有再遇到过这个问题。

    【讨论】:

      【解决方案3】:

      尝试在终端中指定 sdk/build-tools 的路径

      export PATH="Users/YOURUSERNAME/Library/Android/sdk/build-tools/...":$PATH
      

      之后重启模拟器试试

      npm run android   
      

      【讨论】:

        【解决方案4】:

        我发现对我有用的解决方法是:

        1. 关闭仿真设备,这样在运行adb devices 时就没有列出任何内容了
        2. 运行react-native run-android,以便构建正确失败并出现No connected devices! 错误
        3. 重启模拟器并再次运行react-native run-android

        不幸的是,每次重新启动后我仍然需要运行它,我很想找到根本原因并一劳永逸地修复它!

        【讨论】:

          【解决方案5】:

          如果您在安装 watchman 时遇到以下错误,您很可能会遇到此讨论中提到的问题

          Warning: The post-install step did not complete successfully
          

          如果是这种情况,请检查守望窗口显示的内容。如果是这样的:

           Watchman: watchman --no-pretty get-sockname returned with exit code=1, signal=null, stderr= 2018-08-24T17:37:44,142: [0x7fffab20d380] while computing sockname: failed to create /usr/local/var/run/watchman/macbookpro-state: No such file or directory
          

          > brew uninstall watchman
          > cd /usr/local/var/
          > sudo chown -R $(whoami) var
          > brew update
          > brew install watchman
          

          杀死/关闭模拟器设备并运行命令

          > react-native run-android
          

          您应该会看到操作失败并显示类似消息

          > com.android.builder.testing.api.DeviceException: No connected devices!
          

          现在,重新运行命令,可以看到编译成功并在模拟器中打开了应用程序

          > react-native run-android
          

          【讨论】:

            猜你喜欢
            • 2017-01-28
            • 2019-11-27
            • 1970-01-01
            • 2020-03-20
            • 1970-01-01
            • 2021-02-17
            • 2019-12-23
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多