web-dev-qa-db-ja.com

React-Native、Android、Genymotion:ADBサーバーがACKしませんでした

私はMac上でReact-Native、Android、そしてGenymotionを使用しています。 react-native run-Androidを実行すると、起動操作の最後にこの行が表示されます。

...
04:54:40 E/adb: error: could not install *smartsocket* listener: Address already in use
04:54:40 E/adb: ADB server didn't ACK
04:54:40 E/ddms: '/Users/paulbrie/Library/Android/sdk/platform-tools/adb,start-server' failed -- run manually if necessary
04:54:40 E/adb: * failed to start daemon *
04:54:40 E/adb: error: cannot connect to daemon
:app:installDebug FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:installDebug'.
> com.Android.builder.testing.api.DeviceException: Timeout getting device list.
...

ただし、adb devicesはこれを返します。

List of devices attached
192.168.59.101:5555 device

これまでのところ、エミュレータ上で自分のアプリを実行するための解決策は見つかりませんでした。誰かが同じ問題に遭遇しましたか?

ありがとう、ポール

152
Paul

さらに研究を重ねた結果、Genymotionはデフォルトで独自のadbを使用することに気付きました。

enter image description here

私は自分のメインのadb(react-nativeで使われていたのと同じ)に切り替えて問題を解決しました。 Genymotionのadbが最初に起動されたため、Address already in useエラーメッセージが表示されたと思います。

314
Paul

私はgenymotionを使っていますが、Paulの解決策だけではエラーが解決しませんでした(Mac用)。

そうしなければならなかった:

SDKマネージャを介してAndroid SDKを最新バージョン(24.4.1)に更新します

コマンドラインにAndroidと入力

SDKマネージャで最新のSDKツールを見つけてインストールします。

SDKパスをインストールすると、以下のように新しいSDKの場所が更新されます。

enter image description here

次に、新しいSDKを使用するように$ Android_HOMEを更新します

export Android_HOME=/usr/local/Cellar/Android-sdk/24.4.1_1

export PATH=$PATH:$Android_HOME/tools:$Android_HOME/platform-tools

echo $PATHであなたのパスを見てそれが追加されたことを確認してください

それから、genymotionで@Paulが言ったことを行い、genkotion ADBに同じsdkを使うように指示してください

enter image description here

45
smj2393

システム:Windows 10

私の問題:GenymotionをカスタムSDKを指すように設定しても影響はありませんでした。私はまだ受け取った:

Androidでプロジェクトを開始できませんでした:smartsocketリスナーをインストールできませんでした:127.0.0.1:5037にバインドできません:通常、各ソケットアドレス(プロトコル/ネットワークアドレス/ポート)の使用は1回だけです。 (10048)ADBサーバーから正常に読み取れませんでした*デーモンの起動に失敗しました*エラー:デーモンに接続できません

私が発見したのは、システム全体で使用されているADBのバージョンに違いがあるということでした。これが私がそれらを見つけるのに使ったコマンドです:

where /r C:\ adb.exe

これは結果をもたらしました:

C:\Program Files\Expo XDE\resources\app\node_modules\xdl\binaries\windows\adb\adb.exe
C:\Program Files\Genymobile\Genymotion\tools\adb.exe
C:\Users\kyle\AppData\Local\Android\Sdk\platform-tools\adb.exe
C:\Users\kyle\AppData\Local\Android\Sdk\platform-tools\adb backup\adb.exe

各ディレクトリに移動して実行します。

adb.exe version

ExpoでADBバージョンを実行していることを確認できました。

Android Debug Bridge version 1.0.36
Revision fd9e4d07b0f5-Android

カスタムSDKを使用したGenymotionにはバージョンがありました(c:\ Users\kyle\AppData\Local\Android\Sdk\platform-tools\adb.exe)。

Android Debug Bridge version 1.0.39
Revision 3db08f2c6889-Android

テストとして私はからadbファイル(adb.exe、AdbWinApi.dll、AdbWinUsbApi.dll)を取りました

c:\Users\kyle\AppData\Local\Android\Sdk\platform-tools\adb.exe

そしてそれらをバックアップフォルダに置きました。私はそれからにあるadbファイルを移動しました

c:\Program Files\Expo XDE\resources\app\node_modules\xdl\binaries\windows\adb\adb.exe

その同じ場所に。私はadbを殺した:

adb kill-server

genymotionデバイスが既に実行されているため、ADBサーバーが自動的に再起動しました。 Expo XDEの中にある「再起動」ボタンを押すとすぐに動き出しました。これは私が1:13:04 AMに再起動ボタンを押したログです:

12:45:53 AM
could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037: Only one usage of each socket address (protocol/network address/port) is normally permitted. (10048)
could not read ok from ADB Server
* failed to start daemon *
error: cannot connect to daemon
1:13:04 AM
Restarting project and clearing packager cache (Hold shift while clicking restart to avoid clearing cache).
1:13:11 AM
Starting React Native packager...
1:13:17 AM
Scanning 543 folders for symlinks in C:\Users\kyle\git\betalog\node_modules (49ms)
1:13:17 AM
1:13:19 AM
Couldn't adb reverse: closed
1:13:20 AM
Project opened! You can now use the "Share" or "Device" buttons to view your project.
1:13:26 AM
Couldn't adb reverse: closed
1:13:26 AM
Downloading latest version of Expo
1:13:28 AM
Installing Expo on device
1:13:33 AM
Opening on Android device
1:13:56 AM
Building JavaScript bundle: finished in 59643ms.
1:14:01 AM
Dependency graph loaded.
1:14:03 AM
Your JavaScript transform cache is empty, rebuilding (this may take a minute).

結論:Expoがシミュレートされたデバイスと正しく通信できるように、GenymotionとExpoは同じバージョンのadbを使う必要があるかもしれません。あなたのAndroid SDKの場所にGenymotionを向けることとExpo XDEが同じバージョンを持っていることを確実にすることはデバイス間の正しいコミュニケーションを可能にするでしょう。私はExpo XDEバージョンをSDKの場所に移動しましたが、あなたは別の方法で進むことができるかもしれません(sdk ADBファイルを取り、Expo XDEリソースの場所にそれらを置く)。

P.S。私はこの問題に関連したstackoverflowの投稿をすべて読んできました。ちょうどあなたは私のタスクマネージャが実行中のadb.exeの3つのインスタンスを示している知っている。あなたがそれらのうちのどれかを殺すならば、彼らはただ戻ってきます。

これが役に立ちます

10
Kyle s

多分あなたのadbバージョンは一致しません

チェック:

adb version 

その後:

cd /Path/to/Android/Sdk/platform-tools && ./adb version

これら2つが異なる場合は、ここでエラーが発生します。単にsysからadbを削除し、platform-toolsにあるものを/ usr/bin /にコピーしてください。

6
Aldo RVV

あなたのシステムのadbバージョンは、Android sdk platform-toolsのadbバージョンとは異なります。以下の提案は、Linuxオペレーティングシステム用の私のための仕事です

  1. sys adbのバージョンを確認して、以下のコマンドを実行します。

aDBバージョン

Android Debug Bridgeバージョン1.0.39

  1. sDK ADBのバージョンを確認する

cd/root/Android/Sdk /プラットフォームツール

./adbバージョン

Android Debug Bridgeバージョン1.0.32

  1. コピーする

rm/usr/bin/adb

[注:上記のコマンドは既存のadbを削除してから、そのadbをsdk/platform-toolsディレクトリからコピーします。

Sudo cp/root/Android/Sdk/platform-tools/adb/usr/bin/adb

次に、このコマンドを使ってプロジェクトを実行します。

反応ネイティブの実行 - Android

2

私は万博のUIから実行しようとしたときに私は同じことを持っていた。回答に記載されているように、同じことをしましたが、アプリが実行されていませんでした。かつて(プロジェクトフォルダー内の)コマンドラインからexp Androidを実行しようとしたとき、アプリケーションは正常に実行され、次回のExpo UIからの実行は正常に完了しました。

2

私は同様の問題を抱えていました。

まず、アプリをアンインストールしました。それから、私はGenyMotionをAndroid Studioから提供されたAndroid sdkに向けました。次に、私は端末に "adb kill-server"を走らせました。最後に、私は "react-native run-Android"を再実行し、ビルドに成功しました。

2
VocoJax

私のために働いたステップは次のとおりです。

  • $ adb kill-server

  • $ adb start-server

  • $ cd Android

  • $ ./gradlew clean

  • $ cd ..

  • $ react-native run-Android

1
Cool7

1. genymotionでカスタムのsdkパスを使う(これがうまくいかないとしたら、2番目のパスを実行してみてください)

2.このコマンドを手動で使用して実行します(SDKパス/ adb start -n /パッケージ名/ MainActivity)。

C:¥Users¥AppData¥Local¥Android¥Sdk/platform-tools/adb彼女はスタート-n com.example/com.example.ManiActivity

そして、react-native run-Androidを使用してアプリケーションを実行してみてください。

1
priyanga

システムをきれいにしておきたい場合は、Android StudioなしでGenymotionを使用することもできます

  1. Genymotionのadbのコピーを見つけてください。 macOSでは、これは通常/Applications/Genymotion.app/Contents/MacOS/tools/です。
  2. Genymotion toolsディレクトリをあなたのパスに追加します - あなたのexport PATH=/Applications/Genymotion.app/Contents/MacOS/tools/:$PATHまたは~/.bash_profileに行~/.bash_rcを実行/追加してください。
  3. 端末からadbを実行できることを確認してください。

https://docs.expo.io/versions/latest/workflow/genymotion から)

1
cseelus