12

私はadbを実行しようとしています。「adb start-server」を実行すると、しばらくハングし、メッセージが表示されません。

その後、コマンド「adb get-state」は「エラー:プロトコル障害(ステータスなし)」という回答を受け取ります。「adb kill-server」を実行すると、回答は「*サーバーが実行されていません*」です

Windows 7 を使用しています。管理者が私の権限をローカル管理者に昇格させましたが、何も解決しませんでした。

リソース モニターを使用して、他のアプリが adb のポートを使用しているかどうかを確認しましたが、そうではありません。

https://developers.google.com/chrome-developer-tools/docs/remote-debugging の手順 3 は、[設定] > [詳細設定] > [DevTools] で [USB Web デバッグを有効にする] を示しています。しかし、私のテスト用携帯電話では、Chrome の設定に「高度な」カテゴリはありません。インストールされているchromeのバージョンもわかりませんでした。

Web のどこかで、「tmp/android/」の権限を変更してすべてのユーザーが読み書きできるようにする提案を見ましたが、C:\Users\me\AppData\Local\Android\android-sdk\temp にはAndroid フォルダがありません。

だから私は今かなり必死です。

ありがとう

-オリヴィエ

編集1:「USB Webデバッグを有効にする」が見つかりませんでした。これは、「Androidブラウザー」であり、クロムではないためです(少しばかげています)。私は知りませんでした。適切なクロムがインストールされた別のデバイスを使用して、そこでオプションを確認できましたが、起動時に adb がまだクラッシュしています。

編集 2 : platform-tools フォルダーに書き込みの問題があると推測しました。そのため、sdk マネージャーを使用してすべてをアンインストールし、adt-bundle-windows-x86_64 全体を削除しました。次に、c: の別の場所で解凍しました。奇妙なことに、SDKManager.exe を起動すると、いくつかのパッケージが既にインストール済みとしてマークされています。

  • ツール>Android SDK ツール
  • Tools>Android SDK Platform-tools
  • Android 4.2.2>SDK プラットフォーム
  • Android 4.2.2>ARM EABI v7a システム イメージ
  • エクストラ>Android サポート ライブラリ

それらを再度アンインストールし、フォルダーを削除し、再度解凍して再インストールしましたが、結果は同じです。どういうわけか、間違ってインストールされているようですが、適切にアンインストールすることを拒否しています。アンインストールを強制する方法を知っている人はいますか?

EDIT 3 : set ADB_TRACE=1 を使用した後の adb start-server の出力

C:\adt-bundle-windows-x86_64-20130219\sdk\platform-tools>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/sysdeps_win32.c::socket_loopback_client():socket_loopback_client: port 5037 type tcp => fd 100
system/core/adb/transport.c::writex():writex: fd=100 len=4: 30303063 000c
system/core/adb/transport.c::writex():writex: fd=100 len=12: 686f73743a76657273696f6e host:version
system/core/adb/transport.c::readx():readx: fd=100 wanted=4
system/core/adb/transport.c::readx():readx: fd=100 disconnected
system/core/adb/sysdeps_win32.c::adb_close():adb_close: 100(lo-client:5037)
system/core/adb/adb_client.c::adb_connect():adb_connect: service host:start-server
4

11 に答える 11

7

ADB サーバーを起動する前に、環境変数 ADB_TRACE を設定して、手掛かりが得られるかどうかを確認してください。

 C:\Android\android-sdk\platform-tools>set ADB_TRACE=1
 C:\Android\android-sdk\platform-tools>adb start-server

質問に出力を含めてください。

于 2013-04-01T00:37:14.743 に答える
1

出力はトランスポート コードに固定できます。

D("readx: fd=%d wanted=%d\n", fd, (int)len);

while(len > 0) {
    r = adb_read(fd, p, len);
    if(r > 0) {
        len -= r;
        p += r;
    } else {
        if (r < 0) {
            D("readx: fd=%d error %d: %s\n", fd, errno, strerror(errno));
            if (errno == EINTR)
                continue;
        } else {
            D("readx: fd=%d disconnected\n", fd);
        }
        return -1;
    }

これは、トランスポートが次の 4 を読み取ろうとしている間に 0 (EOF) を返すことを意味する場合がありadb_read()ます。したがって、トランスポートは EOF 以外を読み取ることができないように見え、単純に切断されます。これはおそらく USB ドライバーの問題です。

Linux を使用するか、root/admin 権限でコマンドを実行してみてください。

于 2013-04-05T17:32:38.073 に答える
1

C:\Documents and Settings\userfoo.androidには、アンインストーラーが削除しない Android 関連のファイルがいくつかあります。それらのほとんどは ADB ではなく AVD によって使用されますが、「新規」インストールの前に削除することをお勧めします。

ユーザーの権限と権限、およびユーザーの「システム」権限を確認してください。一部の企業では、ウイルスや自動攻撃を防ぐためにそれらが遮断されているためです。

于 2013-04-03T15:43:50.257 に答える
0
  1. Platform ToolsAndroid SDK Manager でのアンインストール
  2. AdbWinUsbApi.dllAdbWinApi.dllおよびのすべてのコピーを見つけて削除しますadb.exe
  3. Platform ToolsAndroid SDK Manager で再インストールする
于 2013-03-27T17:20:44.590 に答える