Manuals
Manuals




This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English

Android でのデバッグ

ここでは、Google の Android オペレーティングシステム向けの公式 IDE である Android Studio を使用して、ビルドをデバッグする方法を説明します。

Android Studio

  • game.projectandroid.debuggable オプションを設定して、バンドル(bundle)の準備をします。

    android.debuggable

  • デバッグモードでアプリのバンドルを作成し、任意のフォルダーに保存します。

    Android のバンドル作成

  • Android Studio を起動します。

  • Profile or debug APK を選択します。

    APK のデバッグ

  • 作成した apk バンドルを選択します。

    apk の選択

  • メインの .so ファイルを選択し、デバッグシンボルが含まれていることを確認します。

    .so ファイルの選択

  • 含まれていない場合は、シンボルを削除していない .so ファイルをアップロードします。(サイズは約 20mb です)

  • パスマッピングを使うと、実行ファイルがビルドされた場所(クラウド内)の各パスを、ローカルドライブ上の実際のフォルダーに対応付けられます。

  • .so ファイルを選択し、ローカルドライブへのマッピングを追加します。

    パスマッピングの設定1

    パスマッピングの設定2

  • エンジンのソースコードにアクセスできる場合は、そのパスマッピングも追加します。

  • 現在デバッグしているバージョンを必ずチェックアウトします。

    defold$ git checkout 1.2.148

  • Apply changes をクリックします。

  • これで、マッピングされたソースコードがプロジェクトに表示されるはずです。

    ソースコードのマッピング

  • ブレークポイントを追加します。

    ブレークポイント

  • Run -> Debug "Appname" を選択し、ブレークポイントで停止させたいコードを実行します。

    ブレークポイント

  • これで、コールスタック内をステップ実行したり、変数を調べたりできます。

注意事項

ネイティブ拡張のジョブフォルダー

現在、ネイティブ拡張(native extension)の開発では、このワークフローに少し手間がかかります。これは、ジョブフォルダーの名前が ビルドごとにランダムになり、ビルドのたびにパスマッピングが無効になるためです。

ただし、1回のデバッグセッションでは問題なく機能します。

パスマッピングは、Android Studio プロジェクトの .iml ファイルに保存されます。

ジョブフォルダーは実行ファイルから取得できます。

$ arm-linux-androideabi-readelf --string-dump=.debug_str build/armv7-android/libdmengine.so | grep /job

ジョブフォルダーの名前は job1298751322870374150 のような形式で、毎回ランダムな数字が使われます。