我一如既往地开发了一个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
创建的项目,也会发生这种情况。 :(
附:确保我的模拟器已启动并运行,问题不在于它。
答案 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)
我发现对我有用的解决方法是:
adb devices
时没有列出任何内容react-native run-android
,使构建正确失败,并出现No connected devices!
错误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