2

JUnitテストを実行するためにadbを呼び出すPythonスクリプトを書いています。'adbget-state'と'adbwait-for-device'を使用して、エミュレーターが起動して準備が整うまで待機しましたが、何らかの理由で、どちらも開始が早すぎます。これらの関数が戻った後、テストの実行を開始すると、次のエラーが発生します。

android.util.AndroidException: Can't connect to activity manager; is the system running?

アクティビティマネージャーのステータスを取得する方法はありますか?そのステータスをポーリングできれば、それで十分です。

ありがとう!

4

1 に答える 1

2

adb wait-for-deviceは、デバイス上のadbdが応答しているかどうかを通知します。ただし、これはデバイス上のLinuxレベルのデーモンであり、通常は後で起動されるAndroidプラットフォームのレベルをはるかに下回ります(設定メニューからADBを有効にしたばかりの場合を除く)。

特にエミュレーターでは、JavaレベルのAndroidランタイムの起動に時間がかかるため、adbdが応答するまでに数秒から数分かかる場合がありますが、通信するActivityManagerはありません。

adb wait-for-serverの後、実行しようとしていること(おそらく、「am」コマンドを実行する)を1秒の遅延でループに入れ、出力を確認するのが最も簡単な解決策です。

于 2012-07-06T19:53:38.350 に答える