NDKのコードでもブレークポイントで止めたい場合は以下のような設定を行う。
デバッグ構成の追加
メニューの[Run]→[Edit Configurations...]をウインドウを開く。
左上[+]アイコン(Add New Configuration)から[Android Native]を選択して、新たな構成を追加。
Nameを適当に設定しつつ、各項目を既存の構成に合わせて設定する。
Native Debuggerタブでは[LLDB]を選択する。
作成したデバッグ構成でデバッグ実行を開始する事で、とりあえずnativeコードでブレークポイントで止める事は出来るが、以下の問題がある。
- アプリ起動からデバッガがアタッチされるまで結構時間がかかる為、onCreateなど起動直後のコードで止める事が出来ない
- Javaのコードでブレークポイントを使えない。
この問題を解決するには、以下の設定と手順でデバッグする。
端末またはエミュレータの設定
端末の[設定]→[開発者向けオプション]で以下3箇所を設定する
- [USBデバッグ]をON
- [デバッグアプリを選択]でアプリを選択
- [デバッガを待機]をON
デバッグの実行手順
1.作成した構成を使ってデバッグ実行を開始
メニューの[Run]→[Debug...]を選択
2.端末ではデバッガ待機状態になる
[Waiting For Debugger]と表示される
※ログで[Debugger attached to process xxxx]と出て接続出来ても待機状態は続く
3.Javaのデバッガもアタッチする
メニューの[Run]→[Attach Debugger to Android process]を選択
プロセスを選らんで[OK]
4.端末の待機状態が解除されて動き出す
JavaでもNativeでもブレークポイントで止める事ができる
コメントをお書きください