6

私は通常、Eclipse の小さな「バグ」アイコンを押してアプリをデバッグします。

しかし今、マニフェストに次のようなインテント フィルターを挿入しました。

 <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />

USB ケーブルを差し込むとアプリが自動的に起動するようになりましたが、もうデバッグできません。ブレークポイントで停止することはもうありません。

インテントを介して起動されたときにアプリをデバッグするにはどうすればよいですか?

どうもありがとう!

4

3 に答える 3

2

この問題に遭遇し、以下のコードで解決しました。コードは以前の回答に基づいています。(アイデアをありがとう!)

  1. このコードをブレークポイントの上に置きます。
  2. リリースではなく、デバッグ バリアントを使用してアプリを実行します。この手順により、デバッグ可能な APK がデバイスに配置されます。
  3. アプリを終了します。
  4. インテント経由でアプリを起動します。アプリはこのコードで一時停止し、「Waiting for debugger」でログをスパムします。
  5. Studio から、[Attach debugger to Android process] をクリックします。
  6. すべてがうまくいけば、アプリはブレークポイントで停止するはずです。

あまりにも長く待つと、ANR になります。

    //TODO: Remove me.  Debug only!
    while (!Debug.isDebuggerConnected()) {
        try {
            Log.d(TAG, "Waiting for debugger");
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
于 2016-10-19T21:37:06.380 に答える
1

解決策は次のとおりです。インテント フィルターの起動により、アプリの起動時に遅延を設定します。次に、アプリがそこに表示されている限り、デバッグ ウィンドウを実行し、アプリ プロセスとビオラをアタッチします。以前のようにアプリをデバッグできます。

于 2013-01-26T22:08:46.327 に答える