14

我尝试在我的mac上运行genymotion android模拟器上的react-native应用程序。 当我写react-native run-android它得到在Android模拟器上运行react-native

Running /usr/local/opt/android-sdk/platform-tools/adb reverse tcp:8081 tcp:8081 
error: closed 
Could not run adb reverse: Command failed: /usr/local/opt/android-sdk/platform-tools/adb reverse tcp:8081 tcp:8081 
Building and installing the app on the device (cd android && ./gradlew installDebug... 
Could not install the app on the device, read the error above for details. 
Make sure you have an Android emulator running or a device connected and have 
set up your Android development environment: 
https://facebook.github.io/react-native/docs/android-setup.html 
MacBook-Pro-MacBook:ART-CarefulPeople macbook$ 

然后我试着:

  1. react-native start
  2. react-native run-android

相同的结果。

然后我试着:

  1. react-native bundle --entry-file index.android.js --platform android --bundle-output android/app/src/main/assets/index.android.bundle

  2. curl "http://localhost:8081/index.android.bundle?platform=android" -o "android/app/src/main/assets/index.android.bundle"

  3. react-native run-android

相同的结果。

我试过只是adb reverse tcp:8081 tcp:8081和它说error: closed

当我尝试运行Android的SDK模拟器应用它得到以上但没有error: closed同样的错误。

从android studio我可以运行这个程序,它可以在genymotion上运行。 请告诉我,我应该怎么做才能在android模拟器上运行我的应用程序?

+4

'adb revese'只适用于Android 5.0+设备 – Xeijp

+1

是的,我不知道是什么我刚刚重新创建项目,一切正常。 – alborozd

+0

我相信如果你的Android手机(假设你有一个)连接到你的电脑,它可能会试图将它安装在该设备上。如果它被插入,我会建议拔掉它,确保你的模拟器正在运行,然后再次尝试'react-native run-android'命令。 – jasonmerino

回答

1

有类似的问题。我更新了我的Genymotion和我的android SDK /库/依赖关系,并且都似乎工作。更新SDK的我用的Android SDK经理{ANDROID_SDK_FOLDER}/tools/android sdk

28

我也有类似的问题,花那么多的时间和大量搜索关于这个问题的唯一窍门为我工作后:

  1. 请安装所需的作为软件开发工具包该图中所示Configure Required SDKs
  2. 如果你已经安装了它,所以你必须有更新的SDK如下:
    • Android SDK Tool(将其更新到最新版本)
    • Android SDK Platform-tools(将其更新到最新版本)
    • Android SDK Build-tools(将其更新到最新版本)
    • Android Support RepositoryExtra文件夹(将其更新到最新版本)
  3. 您必须至少安装在同一版本下Android API作为安装Android SDK Build-tools & Android SDK Platform-tools版本如图中所示Configure Required SDKs

Note: Local Maven repository for Support Libraries which is listed as the SDK requirement in the official docs of React-native is now named as Android Support Repository in the SDK Manager .

+0

嗨,朋友们!如果你喜欢这个答案,请不要忘记把它投票... 谢谢:) –

+0

你能解释它是如何解决'adb reverse tcp:8081 tcp:8081'' error:closed' problem? –

+1

这可能是由于您的Android操作系统版本发生的...... 'adb reverse tcp:8081 tcp:8081'只适用于操作系统版本> = 5的设备 –

2

它发生在我身上,我有一个包装程序与一个旧项目运行的实例(我像往常一样运行react-native start)。我正在使用Ubuntu 14.04。所以我所做的就是要阻止这种情况下,去到我的项目文件夹,并在两个不同的控制台选项卡我单独跑这两个命令:

npm start #here I used to run react-native start 
react-native run-android 

NPM开始在我的package.json定义为:

"start": "node_modules/react-native/packager/packager.sh" 

我不知道是否有一种令人困惑的东西反应原生的,但是这个伎俩。

7

我有类似的问题每次运行在android studio的模拟器,或在物理设备上。相反,你可以快速地从从命令行运行Android模拟器,

android avd 

一旦模拟器运行时,你可以用adb devices检查仿真器显示出来。 然后你可以简单地使用 react-native run-android在模拟器上运行应用程序。

确保您安装的平台工具能够使用adb。或者你可以使用

brew install android-platform-tools 
1

在Windows 10和Android Studio中,卡恩去Android Studio中“文件” - >中设置“设置”,然后以“外观&行为” - >“系统设置” - >“ Android SDK“。 在Tab“SDK Tools”中激活:

  • “Android SDK Build-Tools ..”“
  • ”Android模拟器“
  • ”的Android SDK Plattform-工具“
  • ”Android SDK工具“

如果所有已安装的,那么你可以开始在Android Studio中的仿真器的 ”工具“ - > “Android” - >“AVD Manager” 如果仿真器运行,您可以尝试“react-native run-android”