Android的ReactNative构建只是在最后一步冻结

时间:2017-04-06 21:47:18

标签: android react-native compilation

我一如既往地开发了一个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`

我正在编写反应原生版本0.43.2和react-native-cli 2.0.1,也是npm 4.1.2和纱线0.21.3; Ubuntu 16.04。因此,最新版本的一切都是牙齿,但我仍然无法弄清楚问题。即使对于我刚刚react-native init创建的项目,也会发生这种情况。 :( 附:确保我的模拟器已启动并运行,问题不在于它。

5 个答案:

答案 0 :(得分:14)

尝试重新启动adb以使其探测本地5554端口

killall adb; adb devices

答案 1 :(得分:0)

实际上,我从未找到问题的原因或解决方案。但是我所知道的,我继续进行日常工作,在一两天后(在此期间进行了几次重新启动),它又开始工作了。到目前为止,我再也没有遇到过这个问题。

答案 2 :(得分:0)

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

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

之后,重新启动模拟器并尝试

npm run android   

答案 3 :(得分:0)

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

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

不幸的是,每次重启后我仍然必须运行此命令,希望找到根本原因并一劳永逸地解决它!

答案 4 :(得分:0)

如果在安装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