web-dev-qa-db-ja.com

React Native adb reverse ENOENT

React-NativeをAndroid V4.2.2 (Genymotion)で動作させようとしていますが、エミュレータでアプリをテストできません。 react-native run-Androidを実行すると、このエラーが発生しますCould not run adb reverse: spawnSync

ここにログがあります

JS server already running.
Running /User/Pan/Library/Android/sdk/platform-tools/adb reverse tcp:8081 tcp:8081
Could not run adb reverse: spawnSync /User/Pan/Library/Android/sdk/platform-tools/adb ENOENT
Building and installing the app on the device (cd Android && ./gradlew installDebug...

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':app'.
> The SDK directory '/User/Pan/Library/Android/sdk' does not exist.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 3.785 secs
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

注:ログには、SDKディレクトリが存在しないと書かれていますが、SDKがそのディレクトリにインストールされていることを再確認しています。

adb devicesの実行時にAndroidエミュレーターが見つかりました

List of devices attached
192.168.56.101:5555 device

Stack Overflow投稿から次の手順を試しましたが、まだ運がありません https://stackoverflow.com/a/38536290/4540216

22
XPLOT1ON

同じ問題が発生しました。 Android_HOME env変数を更新しました。

これに従ってください React-native Android-setup documentation

例:

export Android_HOME=~/Library/Android/sdk

編集:更新されたドキュメントリンク

47
SureshCS50

私も同じ問題を抱えています。そして、同じコマンドでもう一度Android_HOME env変数を更新しましたが、うまくいきました。

> export Android_HOME=~/Android/Sdk 
> export PATH=$PATH:$Android_HOME/tools:$Android_HOME/platform-tools

がんばろう

8
Dinithe Pieris

最初に、このように.bash_profileにパスを設定しました

export PATH="~/Library/Android/sdk/platform-tools":$PATH
export Android_HOME="~/Library/Android/sdk/platform-tools"

しかし、それは私の問題を解決しません。

私にとっては、次のnpmスクリプトをpackage.jsonの下にscriptの下に追加することで、Macのタグのように機能しました。

"Android-dev": "adb reverse tcp:8081 tcp:8081 && react-native run-Android"

それから私は単に実行していますnpm run Android-devそしてすべて設定されています。アプリの設定でライブリロードが既に有効になっていることを確認してください。この方法で、モバイルの開発サーバーで作業し、アプリですぐにコーディングの変更を確認できます。

2
Mohsin Bagwan