web-dev-qa-db-ja.com

adbはデバイスを一覧表示できますが、adb Shell / logcatが機能しません

短縮版

adb devicesデバイスを一覧表示できますが、adb Shellまたはadb logcatただハングして、機能しません。

ロングバージョン

さまざまなコマンド出力があります。

/* system info */
$ uname -a
Linux ubuntu-vm 3.8.0-19-generic #29-Ubuntu SMP Wed Apr 17 18:16:28 UTC 2013 x86_64 x86_64    x86_64 GNU/Linux

/* udev info */
$ cat /etc/udev/rules.d/51-Android.rules 
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666", GROUP="plugdev" 

$ lsusb
Bus 001 Device 003: ID 04e8:6860 Samsung Electronics Co., Ltd GT-I9100 Phone [Galaxy S II], GT-P7500 [Galaxy Tab 10.1]
Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub



$ adb devices -l
List of devices attached 
0A3C294805017006       device usb:1-1 product:full_toroplus model:Full_AOSP_on_Toroplus device:toroplus

$ adb Shell
/* no output, just hang */

$ adb logcat
/* no output either */

/* verbose mode */
$ ADB_TARCE=1 adb Shell
system/core/adb/adb.c::main():Handling commandline()
system/core/adb/commandline.c::adb_commandline():starting interactive Shell
system/core/adb/adb_client.c::_adb_connect():_adb_connect: Host:version
..........
4f4b4159 OKAY
system/core/adb/adb_client.c::switch_socket_transport():Switch transport success
system/core/adb/transport.c::writex():writex: fd=3 len=4: 30303036 0006
system/core/adb/transport.c::writex():writex: fd=3 len=6: 7368656c6c3a Shell:
system/core/adb/transport.c::readx():readx: fd=3 wanted=4
/* hang at this point */

Adbサーバーは電話からのデータを期待しているようですが、取得できないため、そこでスタックしています。

私はもう試した:

  • adbサーバーを強制終了して再起動します
  • 電話を抜いてから差し込む
  • 電話を再起動します
  • 電話でUSBデバッグを無効にしてから有効にします

時々、電話を抜いたり抜いたりした後、しばらくは動作します(私はadb Shell)、しかしすぐに動作を停止します。そして、ほとんどの場合、電話のプラグを抜く/差し込むことはまったく効果がありません!

私はvmplayerゲストとしてubuntuを実行しています。ホストはWindows7です。

ヘルプやヒントを事前に感謝します。

更新

電話を後部のUSBポートに差し込んだ後、突然動作します!しかし、問題が本当に解決されたかどうかはわかりません。表示されます。

16
Jinghao Shi

AdbShellがハングするのとまったく同じ問題が発生しました。 UbuntuホストでUbuntu12.04 VMゲストを実行しています。問題は、VMが1.1に設定されているため、USB互換性設定が必要です。設定の電源を変更するには、VMで、VMPlayerのスタートメニューで[仮想マシン設定の編集]を選択します。次に、[USBコントローラー]デバイスを選択し、[USB]を変更します。 USB2.0との互換性」。

5
user3546604

私は同じ問題を抱えていましたが、コンピューターでさまざまなUSBポートを試してみると、さまざまな結果が得られました(ただし、うまく機能しませんでした)。私はついに店に行って新しいUSBケーブルを買うことにしました。今では完璧に動作します! USBケーブルは摩耗していても悪くてもかまいません...

短編小説:新しいケーブルを購入してください!私のために働きました!

1
JohnyTex

それがそのように使用されることを意図していたかどうかはわかりませんが、私もadb Shellぶら下がっていますが、実行中echo my_command | adb Shellターゲットでコマンドを実行できるようになりました。

例えば。 echo settings get secure sysui_qs_tiles | adb Shell

また、adb Shell < /dev/stdinおもしろいかもしれません。

1
joetde