10

アプリの起動プロセス中に発生するいくつかの問題を調査していますが、DDMS はプロセス開始されるまでデバッグ モードを開始しません。イベントを早期にキャプチャする方法はありますか?

4

4 に答える 4

19

これが数年遅れていることはわかっていますが、今後の検索については次のとおりです。

コードWaitForDebuggerに挿入するのも 1 つの方法です。

[設定] で (Android デバイスのシステム情報のビルド番号をタップして) 開発者向けオプションのロックを解除すると、デバッグするアプリケーションを選択し、プログラムが起動されるたびにデバッガーを待機することを選択できます。WaitForDebuggerこれにより、毎回コードを変更して再インストールすることなく、追加と削除に相当することを行うことができます。

于 2015-05-29T15:09:57.340 に答える
13

Android Studioの場合、これが私にとってうまくいったものです:

  1. 追加

android.os.Debug.waitForDebugger();

デバッグを開始する場所。

  1. 次に、コードの直後にブレークポイントを追加します
  2. アプリをコンパイルしてデバイスに渡す
  3. デバイスを再起動します
  4. 起動したら、デバッガーをアタッチします。ここに画像の説明を入力

  5. デバッグを開始

于 2017-12-19T20:20:26.887 に答える
1

Application を拡張し、メソッド onCreate などをオーバーライドする独自の Application クラスを実装する必要があります。このクラスは、アプリの開始点になります。

また、マニフェストでアプリケーションとして設定します。

于 2013-06-05T00:30:37.450 に答える
0

Android は、アプリケーションが起動される前に、デバッガがアプリケーションにアタッチされるのを待つことができます。これはWait for debuggerという開発者向けオプションです。

手順

  • 開発者向けオプションを有効にする (ビルド バージョンを 7 回タップ)

  • USB デバッグを有効にする

  • デバッグ モードを使用してデバイスにアプリケーションをインストールする

  • 開発者向けオプション: を押しSelect debug appてアプリを選択します

  • Wait for debuggerスクリーンショットに示すように、 有効にします。ここに画像の説明を入力

  • アプリを起動します。

    • 例: アプリの終了状態からの起動をプッシュ通知でテストする場合、そのプッシュ通知をデバイスに送信します。
    • 例: Google アシスタントからアプリの起動をテストする場合は、Google アシスタントを使用してこれをトリガーします。
  • アプリはまだ起動せず、代わりにダイアログが表示されます。 ここに画像の説明を入力

  • Attach Debugger to Android Processボタン を押して、デバッガーをアタッチします。ここに画像の説明を入力

私の状況

興味のある方/今後の参考のために: アプリが終了状態のときにプッシュ通知メッセージを受信する Android アプリケーションをデバッグしたかったのです。これは実際には Android 上で動作する Flutter アプリだったので、これは Android と Flutter の両方に関連しています。

ここに画像の説明を入力

この GIF で公開されている API キーを無効にしました。

ヒント

Wait for debuggerが有効になっている場合、後続のアプリケーションの起動を正常に処理するには、Android Studio のデバッガーをデタッチまたはクローズして、再アタッチする必要がある場合があります。そうしないと、アプリが起動しません。

デバイス (左側のデバイス、iOS) からプッシュ通知を送信すると、プッシュ通知によってアプリが (右側のデバイス、Android) で起動されることに注意してください。次に、デバッガーをアタッチすると、プログラムは内部で設定したブレークポイントで一時停止しますFirebaseMessagingReceiver

これらの手順の別のバージョンをここに書きました。

于 2021-09-12T12:05:47.053 に答える