web-dev-qa-db-ja.com

Androidエミュレーターでreact-nativeを実行します

Macのgenymotion Androidエミュレーターで反応ネイティブアプリを実行しようとしています。 react-native run-Androidと書くと

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スタジオからこのアプリを実行でき、genymotionで動作します。 Androidエミュレーターでアプリを実行するにはどうすればよいですか?

27
alborozd

私は同様の問題を抱えていたので、この問題について非常に多くの時間と多くの検索を費やした後、唯一のトリックが私のために働いた:

  1. この図に示すように、必要なSDKをインストールしてください

Configure Required SDKsConfigure Required SDKs

  1. 既にインストールしている場合は、次のSDKを更新する必要があります。
    • Android SDK Tool(最新バージョンに更新)
    • Android SDK Platform-tools(最新バージョンに更新)
    • Android SDK Build-tools(最新バージョンに更新)
    • Extraフォルダーの下のAndroid Support Repository(最新バージョンに更新)
  2. 上記のAndroid API図に示されているように、少なくともAndroid SDK Build-toolsおよびAndroid SDK Platform-toolsバージョンと同じバージョンConfigure Required SDKsをインストールする必要があります。

注:React-nativeの公式ドキュメントでSDK要件としてリストされているサポートライブラリのローカルMavenリポジトリは、Android SDK Managerでリポジトリをサポートします。

35
Rizwan Jamal

Android studioから毎回、または物理デバイスでエミュレータを実行すると、同様の問題が発生しました。代わりに、コマンドラインからAndroidエミュレータをすばやく実行できます。

Android avd

エミュレータが実行されたら、adb devicesでエミュレータが表示されるかどうかを確認できます。次に、react-native run-Androidを使用して、エミュレータでアプリを実行します。

adbを使用できるように、プラットフォームツールがインストールされていることを確認してください。または、使用できます

brew install Android-platform-tools
7
Elton Jain

古いプロジェクトで実行されているパッケージャーのインスタンスがあったことが偶然に起こりました(通常どおりreact-native startを実行しました)。 buntu 14.04を使用していました。そのため、そのインスタンスを停止してプロジェクトフォルダーに移動し、2つの異なるコンソールタブでこれら2つのコマンドを別々に実行しました。

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

npm startはmy package.jsonで次のように定義されています:

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

反応ネイティブの一種の混乱するものがあるかどうかはわかりませんが、それはトリックをしました。

2

同様の問題がありました。 GenymotionとAndroid SDKの/ libraries/dependenciesを更新しましたが、すべて機能しているようです。 SDKを更新するには、Android SDKマネージャー{Android_SDK_FOLDER}/tools/Android sdkを使用しました

1
Vincent Nguyen

Windows 10およびAndroid St​​udioでは、Android St​​udioで[設定]の[ファイル]-> [設定]に移動し、[外観と動作]-> [システム設定]-> 「Android SDK」。 [SDKツール]タブがアクティブになっている場合:

  • 「Android SDK Build-Tools ..」
  • 「Androidエミュレーター」
  • 「Android SDK Plattform-Tools」
  • 「Android SDKツール」

すべてインストールされている場合は、Android St​​udioで[ツール]-> [Android]-> [AVD Manager]を使用してエミュレーターを起動できます。エミュレーターを実行する場合、「react-native run-Android」を試すことができます

1
Edelfix

私の場合、Android/gradlewファイルに実行権限がないため、これが発生していました。一度許可されると、これはうまくいきました

1
Allen Paul

電話を振ってDev Setingsに移動してからデバイスのサーバーホストとポートをデバッグに接続し、PCのIPアドレスとポートを書き込みます。 例192.168.9.2:8081

それが最終的かつ最良のソリューションです。

0
Emil Mammadov