開発
開発
プラットフォームを選択

Android Studioを使用したネイティブデバッグ

このセクションでは、Android Studioでサンプルのネイティブアプリをデバッグしてみます。
プロジェクトインポート時に作成されたデフォルト構成では、Javaのデバッグだけがサポートされます。
Android Studioツールバーの[Configurations (構成)]ドロップダウンメニューから[Edit Configurations (構成の編集)...]を選択します。
下に示されているように[Android App (Androidアプリ)]構成を新規作成します。
[Run/Debug Configuration (構成の実行/デバッグ)]ダイアログボックスの[General (一般)]タブで、構成の名前を指定し、モジュールを選択します。
[Run/Debug Configuration (構成の実行/デバッグ)]ダイアログボックスの[Debugger (デバッガー)]タブで、[Debug type (デバッグの種類)][Native (ネイティブ)]に変更し、シンボルパスを追加します。
ndk-buildにより、ストリップされたライブラリがlibs/ディレクトリ内に置かれることに注意してください。シンボル検索パスがobj/local/<arch>ディレクトリを指すようにする必要があります。これは再帰検索パスではないため、obj/local/armeabi-v7aディレクトリのフルパスを設定する必要があります。

トラブルシューティング

AInputQueue_preDispatchEventにおいてSIGILL (illegal instruction)でアプリクラッシュが発生する場合、LLDBのSIGILLハンドラーを無効にするという回避方法があります。これを行うには、次の手順を実行します。
  1. Android Studioでアプリを開きます。
  2. [Run (実行)]>[Edit Configurations (構成の編集)]の順に開きます。
  3. [Run/Debug Configurations (構成の実行/デバッグ)]ウィンドウで、左側のペインで対象アプリが選択されていることを確認し、右側のペインで[Debugger (デバッガー)]タブをクリックします。
  4. [Debugger (デバッガー)]タブで、下の[LLDB Post Attach Commands (LLDBポストアタッチコマンド)]タブをクリックします。
  5. 右側の[+]をクリックし、次のコマンドを追加して、Enterを押します。
    process handle --pass true --stop false --notify true SIGILL
    
  6. [OK]をクリックして変更を適用します。
ナビゲーションロゴ
日本語
© 2026 Meta