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

Android 用アプリケーションのビルド

アプリケーションのビルド方法に影響を与える設定は 2 つあります。

  • Player settings (プレイヤー設定) - アプリケーションのランタイム設定を行うことができます。Player 設定の詳細については、Android プラットフォームの Player 設定 を参照してください。
  • Build settings (ビルド設定) - ビルドシステムのパラメーターを設定し、アプリケーションをビルドすることができます。

Player settings で Split Application Binary オプションが選択されている場合、出力パッケージには APK と APK 拡張ファイル (OBB) が含まれます。OBB ファイルの詳細については、OBB のサポート を参照してください。

ダウンロードとインストールのサイズを最適化するには、Player settings の Split APKs by target architecture オプションを有効にします。 Split APK by target architecture オプションは Player settings の Target Architecture リストで選択された各デバイスアーキテクチャに対応する 1 群の APK と OBB を作成します。選択したすべてのアーキテクチャが 1 つの APK に含まれる FAT APK ではなく、Google Play やその他のストアに APK (および、使用可能な場合は OBB) をアップロードできます。この機能の詳細については、Android Developers ウェブサイトの Multiple APK support を参照してください。

Build Settings の設定

Android 用のアプリケーションを設定しビルドするには、Build Settings ウィンドウにアクセスし File > Build Settings を選択し、PlatformsAndroid を選択します。

デフォルトのビルドプラットフォームとして Android を設定するには、Switch Platform ボタンをクリックします。

ビルド設定を指定したら、Build ボタンをクリックしてビルドを作成します。アプリケーションをビルドするには、Build and Run をクリックしすると、指定したプラットフォームでビルドを作成して実行できます。Platform で、Android を選択します。

オプション 目的
Texture Compression Unity Android ビルドシステムは、Don’t override、DXT (Tegra)、PVRTC (PowerVR)、ETC (デフォルト)、ETC2 (GLES 3.0)、ASTC のテクスチャ圧縮形式オプションをサポートしています。これらの形式の使用についての詳細は、Texture Compression のセクションを参照してください。
ETC2 fallback 32-bit (32 ビット)、16-bit (16 ビット)、32-bit, half resolution (32 ビット、半解像度)
Build System
Internal (deprecated) - 非推奨。Android SDK ユーティリティに基づいて、内部の Unity ビルドプロセスを使用して出力パッケージ (APK) を生成します。Internal を選択すると、Export Project チェックボックスが非表示になります。
Gradle - Gradle ビルドシステムで出力パッケージ (APK) を生成します。直接の Build and Run とプロジェクトをディレクトリにエクスポートすることをサポートします。 Gradle はUnity のデフォルトのビルドシステムです。
Export Project これを有効にすると、プロジェクトを Android Studio にインポートできる Gradle プロジェクトとしてエクスポートします。
Build AppBundle (Google play) これを有効にすると、Google Play で配信する Android App Bundle をビルドします。
Run Device ビルドのテストが可能な接続されたデバイスのドロップダウンリスト。新しいデバイスを接続したり、リストに加えたデバイスが見つからない場合は、Refresh ボタンをクリックしてリストをリロードしてください。
Development Build これを有効にすると、開発ビルドにはデバッグシンボルが含まれ、プロファイラーが使用可能になります。Development Build を選ぶと、Autoconnect Profiler、Script Debugging、Scripts Only Build オプションが選択可能になります。
Autoconnect Profiler これを有効にすると、プロファイラーが自動的にビルドに接続するようになります。Development Build オプションが選択されている場合に選択可能です。プロファイラーの詳細については、プロファイラー概要を参照してください。
Script Debugging これを有効にすると、リモートでスクリプトデバッガーをプレイヤーに設定できるようになります。 Development Build オプションが選択されている場合に選択可能です。
Scripts Only Build これを有効にすると、現在のプロジェクト内のスクリプトだけがビルドされます。 Development Build オプションが選択されている場合に選択可能です。
Compression Method ビルド時にプロジェクトのデータを圧縮します。以下の方法のいずれかを選択します。
Default - デフォルトの圧縮は ZIP です。圧縮結果は LZ4 や LZ4HC よりも若干良くなりますが、データの解凍が遅くなります。
LZ4 - 高速な圧縮形式で、開発ビルドに役立ちます。LZ4 圧縮を使用すると、Unity でビルドされたゲームやアプリケーションのロード時間を大幅に改善できます。詳細については、BuildOptions.CompressWithLz4 を参照してください。
LZ4HC - LZ4 の高圧縮の変形でビルドに時間がかかりますが、リリースビルドのためにより良い結果が得られます。LZ4HC 圧縮を使用すると、Unity でビルドされたゲームやアプリケーションのロード時間を大幅に改善できます。詳細については、BuildOptions.CompressWithLz4HC を参照してください。
SDKs for App Stores どのサードパーティ製のアプリケーションストアと統合するかを選択します。統合するには、アプリケーションストア名の横にある Add をクリックします。Unity Package Manager は、関連するインテグレーションパッケージを自動的にダウンロードして加えます。

Texture Compression

Unity は、個々のテクスチャ形式のオーバーライドを持たないテクスチャに ETC (Ericsson Texture Compression) 形式を使用します。APK をビルドして特定のハードウェアをターゲットにする場合は、Texture Compression オプションを使用してこのデフォルトの動作を上書きします。 Texture Compression はプロジェクトのグローバル設定です。テクスチャに特定のオーバーライドがある場合、そのテクスチャは Texture Compression 設定の影響を受けません。詳細については、テクスチャ を参照してください。

テクスチャとテクスチャ圧縮の詳細については、Android 2D テクスチャオーバーライド を参照してください。

テクスチャ圧縮形式の詳細については、プラットフォーム別オーバーライドのためのテクスチャ圧縮形式 を参照してください。特に、トピックの最後にある Android に関するノート を参照してください。

ノート: Texture Compression はグローバル設定です。個々のテクスチャはグローバル設定をオーバーライドします。

ETC2 fallback

ETC2 (GL ES3 をサポートしない) をサポートしない Android デバイスの場合、32-bit (32 ビット)、16-bit (16 ビット)、または 32-bit, half resolution (32 ビットの半解像度) 形式を選択することで、デフォルトの ETC2 テクスチャ解凍をオーバーライドできます。

このオプションを使用すると、圧縮されていないテクスチャの画像品質と、それが占めるメモリ量を選択できます。32 ビット RGBA テクスチャは最高品質の形式であり、16 ビット形式の 2 倍のディスクスペースを必要としますが、16 ビットのテクスチャは、有益な色情報の一部を失う可能性があります。 32 ビットの半解像度ではメモリ要件がさらに軽減されますが、テクスチャがぼやけることがあります。

Build System

Unity は 2 つの Android ビルドシステム、GradleInternal をサポートしています。

Android 用のビルドに必要な手順は以下のとおりです。

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

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

  • プラグインの処理

  • Split Application Binary が選択されている場合、リソースを APK に含めるものと OBB に含めるものに分けます

  • AAPT ユーティリティを使用して Android リソースをビルドします (内部ビルドのみ)

  • Android マニフェストの生成

  • ライブラリマニフェストを Android マニフェストにマージします (内部ビルドのみ)

  • Java コードを Dalvik Executable (DEX) 形式にコンパイルします (内部ビルドのみ)

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

  • APK と OBB パッケージのビルドと最適化を行います

Gradle ビルドシステム

Gradle ビルドシステムは Gradle を使用して APK をビルドしたり、Gradle 形式でプロジェクトをエクスポートします。Gradle ビルドシステムは Android Studio にインポートすることができます。このビルドシステムを選択すると、Unity は AAPT によるリソースコンパイル、マニフェストのマージ、DEX の実行を除いて Internal ビルドシステムと同じ手順を行います。Unity は build.gradle ファイルを (他の必要な設定ファイルとともに) 生成し、Gradle 実行ファイルを実行し、タスク名と作業ディレクトリを渡します。最後に、APK が Gradle によってビルドされます。

詳細については、Android の Gradle を参照してください。

Internal ビルドシステム

Internal ビルドシステムは、APK と OBB パッケージをビルドして最適化するために Android SDK ユーティリティを使用して APK を作成します。OBB ファイルの詳細については、OBB のサポート を参照してください。

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

ビルドパイプラインをより詳細に制御する必要がある場合や、Unity が通常は許可しない変更を行う場合 (例えば、Unity によって自動的に生成されたマニフェストファイルを調整する場合など)、プロジェクトをエクスポートして Android Studio にインポートすることができます。プロジェクトのエクスポートは、Build System として Gradle を選択している場合にのみ使用できます。

プロジェクトのエクスポートは以下の手順で行います。

  1. Build System ドロップダウンメニューから Gradle を選択します。
  2. Export Project チェックボックスをチェックします。 Export Project がチェックされている場合、Build ボタンのラベルが Export に変わり、Build and Run ボタンが無効になります。
  3. Export ボタンをクリックして、エクスポート先のフォルダーを選択します。

エクスポートが終了したら、Android Studio を開きプロジェクトをインポートします。プロジェクトを Android Studio にインポートする方法の詳細については、Android Developer ドキュメントの Android Studio への移行 を参照してください。

Build または Build and Run

Build Settings ウィンドウには BuildBuild and Run の 2 つのオプションがあります。いずれかのオプションを使用すると、出力パッケージ (有効になっている場合は APK と OBB) が選択したパスに保存されます。これらのパッケージは Google Play Store に公開できます。または、Android Debug Bridge (ADB) を使用して手動でデバイスにインストールすることもできます。アプリケーションを手動でインストールする方法については、Android Developer ドキュメントの アプリを実行する を参照してください。ADB コマンドの詳細については、Android Developer ドキュメントの Android Debug Bridge を参照してください。

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

Split Application Binary オプションを有効にすると、OBB ファイルはデバイスの正しい場所にプッシュされます。Development Build を有効にすると、Unity はプロファイルトンネルも設定し、CheckJNI を有効にします。その後、アプリケーションが起動します。Split Application Binary 設定は Player 設定の Publishing Settings セクションにあります。

ヒント: パッケージの出力パスを指定した後に、Ctrl + B (Windows) または Cmd + B (macOS) キーボードショートカットを使用すると、指定した出力パスを使用して Build and Run を行えます。


  • 2018–11–19 編集レビュー を行って修正されたページ

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

  • Build Settings の設定オプションを更新

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