1

LinuxにSDKをインストールしました。昨年アンドロイドの仕事をしていたので、以前は使っていましたが、当時はツールに問題はありませんでした。

ただし、現在のインストールではエミュレーターにインストールされません。 avdが起動され、エミュレーターが実行されています。

> adb devices
List of devices attached 
emulator-5554   device

> adb install blahblah.apk
error: protocol fault (no status)
- waiting for device -

私はそれを殺すまでハングアップします。それで:

> adb devices
List of devices attached

> adb kill-server
> adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *

> adb devices
List of devices attached 
emulator-5554   device

> adb -s emulator-5554 install blahblah.adk
error: protocol fault (no status)
- waiting for device -

通常のユーザーおよびルートとして、これを十数回経験したに違いありません。この Q&Aを読んで、onで同じことを試してみADB_TRACEました。これにより、サーバーを強制終了して再起動するときに奇妙な違いが生じました。

> adb start-server
system/core/adb/adb.c::main():Handling commandline()
system/core/adb/adb_client.c::_adb_connect():_adb_connect: host:version
system/core/adb/adb_client.c::adb_connect():adb_connect: service host:start-server
* daemon not running. starting it now on port 5037 *
ADB server didn't ACK
* failed to start daemon *

トレースをオンにしないと、常に「デーモンが正常に開始されました」になります。しかし、その後adb devicesのエミュレータは再び表示されます。今すぐ試しadb installてみると、大量のデバッグ出力が生成され、「エラー: プロトコル障害 (ステータスなし)」の直前に:

system/core/adb/transport.c::readx():readx: fd=3 disconnected
system/core/adb/adb_client.c::adb_connect():adb_connect: return fd -1
error: protocol fault (no status)

次に、「デバイスを待機中」の前に:

system/core/adb/transport.c::readx():readx: fd=3 wanted=4 got=4
4641494c FAIL
system/core/adb/transport.c::readx():readx: fd=3 wanted=4
system/core/adb/transport.c::readx():readx: fd=3 wanted=4 got=4
30303130 0010
system/core/adb/transport.c::readx():readx: fd=3 wanted=16
system/core/adb/transport.c::readx():readx: fd=3 wanted=16 got=16
646576696365206e6f7420666f756e64 device not found
system/core/adb/adb_client.c::switch_socket_transport():Switch transport failed
system/core/adb/adb_client.c::adb_connect():adb_connect: return fd -1

オンラインで同様のレポートは見つかりませんでした。

4

1 に答える 1