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」