尝试在Android 4.4.2上创建一个反应原生项目,我得到了这个错误屏幕

却找不到解决的办法。我尝试重新启动packager,重新连接设备,甚至重新安装react native并开始新的项目。在6.0.0和更高版本上,它工作得很好。


当前回答

当你运行react-native run-android时,请检查是否有以下错误: adb服务器版本(XX)不匹配此客户端(XX);杀死……

在这种情况下,确保/usr/local/opt/android-sdk/platform-tools/adb和/usr/local/bin/adb指向同一个adb

在我的情况下,一个指向/Users/sd/Library/Android/sdk/platform-tools/adb (Android sdk),但另一个指向/usr/local/ caskroom /Android -platform-tools/26.0.2/platform-tools/adb (Homebrew)

问题已经修复后,他们都指向/Users/sd/Library/Android/sdk/platform-tools/adb (Android sdk)

其他回答

我也遇到了同样的问题,但这是我自己犯的一个愚蠢的错误……

从Android工作室,我从应用程序项目而不是根项目启动installDebug/installRelease gradle脚本。

我尝试了上面/下面的许多建议,但最终,我面临的问题是watchman的权限问题,它在之前使用homebrew安装。如果您在尝试使用模拟器时查看您的终端消息,并在模拟器上遇到关于watchman的“Permission denied”错误以及“Could not get BatchedBridge”消息,请执行以下操作:

进入您的/Users/<username>/Library/LaunchAgents目录并更改权限设置,以便您的用户可以读和写。这与你是否有一个com.github.facebook.watchman.plist文件无关。

对我来说,这是因为adb不在PATH中。它位于/Users/man/Library/Android/sdk/platform-tools,对我来说可能在其他地方,但无论如何,找到它并将其添加到你的路径,看看是否有帮助。

如果这些方法都不适合你,试试下面的方法:

我发现我的<根>/android/app/build/intermediates/assets/debug文件夹是空的,通过运行cd android && ./gradlew assembleDebug没有创建那些所需的文件,这些文件后来被javascript线程在我们的react原生应用程序中使用。

我手动运行了以下命令,调试构建命令应该在理想情况下创建。

node node_modules/react-native/local-cli/cli.js bundle --platform android --dev true --reset-cache --entry-file index.android.js --bundle-output /<path to dir>/android/app/build/intermediates/assets/debug/index.android.bundle --assets-dest /<path to dir>/android/app/build/intermediates/res/merged/debug

在运行这些命令后,我发现在这个目录下有两个bundle文件<root>/android/app/build/intermediates/assets/debug

然后我再次运行cd android && ./gradlew installDebug我的应用程序重新开始工作。

将调试更多,并将更新实际上失败的内容。

我也遇到过这个问题。 我所做的就是强制关闭我设备上的应用,然后打开另一个控制台并运行

react-native start

然后我从设备上再次打开应用程序,它又开始工作了。

编辑:如果你通过USB使用android设备,并且拔掉了USB插头,或者你的电脑处于休眠状态,你可能需要先运行

adb reverse tcp:8081 tcp:8081