Android 開発でのトラブルシューティング
Android でクラッシュしたときのバグレポート方法

Android のビルドプロセス

Unity には 2 つの Android アプリのビルドプロセスの出力タイプがあります。出力パッケージ (APK) とエクスポートされたプロジェクトです。APK は、 Build and Run を選択すると自動的にデプロイされます。または、Android Debug Bridge (ADB) を使って、ビルド後に手動で APK をデプロイすることができます。すべての ADB コマンドは、Android デベロッパーのドキュメントの Android Debug Bridge セクションを参照してください。

Unity エディターの Player Settings ウィンドウで Split Application Binary オプションを選択すると、出力パッケージに APK 拡張ファイル (OBB) が含まれます。OBB ファイルに関する詳細は、Unity マニュアルの OBB サポート セクションを参照してください。

Unity は GradleInternal の 2 つの Android ビルドシステムをサポートします。Unity はプロジェクトを ADT (Google Android プロジェクト) と Gradle の 2 つの形式でエクスポートします。

内部ビルドシステム

Internal ビルドシステムは、Android SDK ユーティリティを起動して特定の順番で APK を作成します。Unity は APK を作成するために以下のような多くの処理を自動的に実行します。

  • Unity のアセットの準備とビルド

  • スクリプトのコンパイル

  • プラグインの処理

  • Split Application Binary が選択されている場合は、リソースを APK と OBB どちらかに分割

  • AAPT ユーティリティーを使用して Android リソースをビルド

  • Android マニフェストを生成し、それにライブラリマニフェストを併合

  • Java コードを Dalvik Executable 形式 (DEX) にコンパイル

  • IL2CPP Scripting Backend が選択されている場合は、IL2CPP ライブラリをビルド

  • APK と OBB パッケージのビルドと最適化

OBB ファイルに関する詳細は、Unity ドキュメンテーションの OBB のサポート を参照してください。Android マニフェストに関するその他の情報は、Unity の Android マニフェスト ドキュメントを参照してください。

Gradle ビルドシステム

Gradle ビルドシステムは Gradle を使用して、APK をビルドしたり、Android Studio にインポート可能な Gradle 形式でプロジェクトをエクスポートします。詳細は Unity ドキュメントの Android の Gradle を参照してください。

このビルドシステムを選択すると、Unity は、AAPT を使ったコンパイルと DEX の実行を除き、 Internal ビルドシステムと同様の処理を行います。そして build.gradle ファイル (その他必要とする設定ファイルとともに) を生成し、Gradle 実行ファイルを起動し、タスク名と作業ディレクトリを渡します。それから、APK は Gradle によってビルドされます。

プロジェクトのエクスポート

ビルドパイプラインをより細かく制御するため、または、Unity で通常は許可されない変更 (Unity によって自動的に生成されるマニフェストファイルに細かい調整を加えるなど) を行うためには、外部ツールで使用するためにプロジェクトをエクスポートしなければなりません。

Unity はプロジェクトのエクスポートに 2 形式で対応します。

  • Gradle プロジェクト - Gradle プロジェクトは Android Studio にエクスポートする場合、推奨されるエクスポート形式です。

  • Google Android プロジェクト (ADT または Eclipse プロジェクト) -  ADT プロジェクトは Eclipse または Android Studio にインポート可能です (Android にインポートすると、プロジェクトは Gradle に変換されます)。この形式は古いため、Google によるサポートは終了しています。

プロジェクトをエクスポートする方法は以下の通りです。

  1. Build Settings ウィンドウでGradleADT を選択します (Gradle を選択している場合は、Export Project チェックボックスをチェックします)。

  2. **Export ** をクリックしてエクスポート先フォルダーを選択します。

エクスポートが終了したら Android Studio を開いてプロジェクトをインポートします。Android Studio へプロジェクトをインポートするための詳細は Android デベロッパーのドキュメントの Android Studio への移行 セクションを参照してください。

テクスチャの圧縮

Build Settings ウィンドウに Texture Compression オプションがあります。デフォルトで、個別にテクスチャ形式をオーバーライドしないテクスチャに関しては、Unity は ETC テクスチャ形式を使用します (詳細は Unity ドキュメントのテクスチャ を参照)。

アプリケーションアーカイブ (.apk ファイル) を特定のハードウェアアーキテクチャ用に作成したい場合は、Texture Compression オプションを使ってこのデフォルトの挙動をオーバーライドし ます。 圧縮しない設定にしてあるテクスチャは処理されません。圧縮テクスチャ形式を使用しているテクスチャにのみ Texture Compression オプションで選択された形式が使用されます。

選択されたテクスチャ圧縮をサポートするデバイスにだけアプリケーションをデプロイするようにするため、Unity は、選択された特定の形式に適合したタグを含むように Android マニフェスト を編集します。こうすると、Google Play Store のフィルター機能によって、適当なグラフィックハードウェアを持つデバイスにだけアプリケーションが提供されます。

Build または Build and Run

Build Settings ウィンドウには、BuildBuild and Run の 2 つの選択肢があります。ビルドするとき、出力パッケージ (有効にしてある場合は APK と OBB) は選択したパスに保存されます。これらのパッケージを Google Play Store にパブリッシュするか、ADB を利用して手動でデバイスにインストールできます。アプリケーションを手動でインストールするための情報は、 Android デベロッパーのドキュメントの アプリを実行する セクションを参照してください。

Build and Run を選択すると、出力パッケージが指定したファイルパスに保存される一方で、アプリケーションはコンピューターに接続する Android デバイスにインストールされます。

Split Application Binary オプションが有効の場合は、OBB ファイルはデバイスの正しい場所に配置されます。Development Build が選択されている場合は、Unity はさらに、プロファイラーのトンネルを設定し、CheckJNI を有効にします。その後に、アプリケーションを起動します。

ヒント: いったんパッケージの出力パスを指定したら、 Ctrl+B (Windows) またはCmd+B (OSX) キーボードショートカットを使用して保存した出力パスに Build and Run を行うことができます。


  • 2017–05–25 編集レビュー を行ってパブリッシュされたページ

  • バージョン 5.5 の更新機能

Android 開発でのトラブルシューティング
Android でクラッシュしたときのバグレポート方法