Version: 2021.1
言語: 日本語
Android スプラッシュスクリーンのカスタマイズ
Android マニフェスト

Android の Gradle

Gradle は、多数のビルドプロセスを自動化する Android のビルドシステムです。この自動化によって、多くの一般的なビルドエラーを回避できます。Unity では、DEX (Dalvik Executable 形式) ファイルのメソッド参照数が減少します。つまり、DEX 制限問題に遭遇する可能性が低くなります。

Unity はすべての Android ビルドに Gradle を使用します。Unity で出力パッケージ (.apk、.aab) をビルドするか、Unity から Gradle プロジェクトをエクスポートしてから、AndroidStudio などの外部ツールを使用してビルドできます。

Unity バージョン Gradle バージョン
2020.3 starting from 2020.3.15f1
2021.1 starting from 2021.1.16f1
6.1.1
2020.1, 2020.2, 2020.3 up to and including 2020.3.14f1
2021.1 up to and including 2021.1.15f1
5.6.4
2019.4 5.1.1

詳細は以下を参照してください。

Gradle プロジェクトのビルドまたはエクスポート

Gradle プロジェクトをビルドするには、以下の手順に従います。

  1. Unity エディターで、プロジェクトの Build Settings を開きます (メニュー: File > Build Settings)。
  2. Platform リストで、ビルドターゲットとして Android が選択されていることを確認します。Android が現在ビルドターゲットでない場合は、Platform リストで選択し Switch Platform ボタンを選択します。
Android のビルド設定
Android のビルド設定

以下を選択します。

  • Build ボタンで .apk ファイルを生成します。
  • Build and Run ボタンで .apk ファイルを生成し、接続しているデバイスにデプロイし実行します。

Unity プロジェクトを Gradle プロジェクトとしてエクスポートするには、Export Project 設定を有効にしてから、Export ボタンを選択します。これを行うと、Unity は指定したフォルダーに Gradle プロジェクトを生成し、.apk ファイルをビルドしません。このプロジェクトを AndroidStudio または別の外部ツールにインポートして、さらに変更を加えたり、そこからビルドしたりできます。

エクスポートされた Gradle プロジェクトの構造

Unity 2019.3 以降のバージョンでは、2 つのモジュールを持つ Gradle プロジェクトが作成されます。

  • UnityLibrary モジュール: Unity ランタイムとプロジェクトデータを含みます。このモジュールは、他のすべての Gradle プロジェクトと統合できるライブラリです。これを使用して、Unity を既存の Android アプリケーションに埋め込むことができます。
  • Launcher モジュール: アプリケーションの名前とそのすべてのアイコンが含まれています。Unity を起動する簡単な Android アプリケーションモジュールです。これを独自のアプリケーションに置き換えることができます。
Android のビルド設定
Android のビルド設定

.gradle テンプレート

Gradle テンプレートは、Gradle で Android アプリをビルドする方法を示し、設定します。各 Gradle テンプレートは 1 つの Gradle プロジェクトを表します。Gradle プロジェクトは他の Gradle プロジェクトを含むことができ、依存しています。

Gradle テンプレートは以下のファイルで構成されています。

ファイル 場所 含まれるもの
baseProjectTemplate.gradle エクスポートしたプロジェクトの root/build.gradle フォルダー 他のすべてのテンプレート/Gradle プロジェクト (リポジトリと Android Gradle プラグインへの依存関係) 間で共有される設定が含まれます。
launcherTemplate.gradle_ エクスポートしたプロジェクトの root/launcher/build.gradle folder フォルダー Android アプリケーションのビルド方法 (バンドル、署名、APK 分割) のインストラクションが含まれています。unityLibrary プロジェクトに依存し、.apk ファイルまたはアプリケーションバンドルを出力します。
mainTemplate.gradle エクスポートしたプロジェクトの root/unityLibrary/build.gradle フォルダー Unity をライブラリにしてビルドする方法のインストラクションが含まれます。 .aar ファイルを出力します。Unity エディターで Unity テンプレートをカスタムテンプレートでオーバーライドできます。詳細は、このページの カスタムの Gradle ビルドテンプレートの提供 セクションを参照してください。
libTemplate.gradle 任意 Unity プロジェクトに Android ライブラリプロジェクト がプラグインとして含まれる場合に使用されます。

Gradle ビルドのカスタマイズ

Player Settings ウィンドウの Publishing Settings セクションで、カスタムの Gradle ビルドテンプレートを提供し、小型化オプションを選択できます。

Player 設定ウィンドウの Publishing Settings セクションの Gradle 固有の設定

カスタム Gradle ビルドテンプレートの提供

Unity から APK をビルドするときに、unityLibrary モジュールのカスタム build.gradle ファイルを使用できます。このファイルには、テンプレート変数 で指定された特定のビルドインストラクションが含まれます。テンプレート変数のリストは、次のセクションを参照してください。

unityLibrary モジュールに独自の build.gradle ファイルを使用するには、以下の手順を行います。

  1. Unity エディターで Player Settings ウィンドウを開き (Edit > Project Settings > Player)、Android を選択します。
  2. Publishing Settings セクションで、Custom Main Gradle Template 設定を有効にします。

Unity はデフォルトの mainTemplate.gradle ファイルをプロジェクトの Assets/Plugins/Android/ フォルダーに作成します。新しいファイルへのパスは、Player 設定の Custom Gradle Template オプションの下にも表示されます。 Project ウィンドウの mainTemplate.gradle ファイルをダブルクリックして、外部のテキストエディターで開きます。

unityLibrary モジュールのプロジェクトビューの mainTemplate.gradle ファイル
unityLibrary モジュールのプロジェクトビューの mainTemplate.gradle ファイル

デフォルトでは、Unity は、Unity のインストールディレクトリにある settingsTemplate.gradle ファイルを使用して、ビルド用の settings.gradle ファイルを作成します。 settings.gradle ファイルには、ビルドプロセスに関与するプロジェクトコンポーネントが含まれています。Unity はデフォルトで以下のコンポーネントを作成します。これらは常に settings.gradle ファイルに含まれている必要があります。

  • launcher
  • unityLibrary

また、Android ライブラリのプラグインをプロジェクトに加えたい場合、**INCLUDES** エントリーを置き換えることによって、Unity は自動的にプラグインを設定ファイルに加えます。

settings.gradle ファイルに、デフォルトで含まれないコンポーネントを追加したい場合は、プロジェクトの Assets/Plugins/Android/ フォルダーに settingsTemplate.gradle ファイルを作成します。これは、デフォルトのテンプレートをオーバーライドします。

独自の settingsTemplate.gradle ファイルを使用する場合、以下の行が含まれている必要があります。

include ':launcher', ':unityLibrary'
**INCLUDES**

IPostGenerateGradleAndroidProject

IPostGenerateGradleAndroidProjectunityLibrary モジュールへのパスを返します。これにより、Unity 2019.3 より前のバージョンと同様のすべてが維持され、それ以上の変更は必要ありません。つまり、Unity はバージョン間で一貫した方法でアプリのマニフェストとリソースにアクセスできます。

テンプレート変数

mainTemplate.gradle ファイルには以下の変数を加えることができます。

変数 説明
DEPS プロジェクト依存関係のリスト、つまり、プロジェクトが使用するライブラリ。
APIVERSION ビルドのターゲットとなる API バージョン (例えば 25)。
MINSDKVERSION 最低 API バージョン (例えば、25)
BUILDTOOLS 使用する SDK ビルドツール (例えば 25.0.1)
TARGETSDKVERSION ターゲットとなる API バージョン (例えば 25)。
APPLICATIONID Android アプリケーション ID (例えば com.mycompany.myapp)
MINIFY_DEBUG デバッグビルドの minify (ファイル圧縮) を有効にします (True か False)。
PROGUARD_DEBUG デバッグビルドの圧縮には ProGuard を使用します (True か False)。
MINIFY_RELEASE リリースビルドの minify (ファイル圧縮) を有効にします (True か False)。
PROGUARD_RELEASE リリースビルドの圧縮には ProGuard を使用します (True か False)。
USER_PROGUARD カスタム製のユーザー ProgGuard ファイル (例えば proguard-user.txt)。
SIGN このビルドが署名されている場合は、signingConfigs セクションが行われます。
SIGNCONFIG ビルドが署名される場合は signingConfig signingConfig.release に設定されます。
DIR_GRADLEPROJECT Unity が Gradle プロジェクトを作成するディレクトリ。
DIR_UNITYPROJECT Unity プロジェクトのディレクトリ。

小型化

ProGuard の小型化を使用して、アプリケーションを小さくして最適化できます。このオプションを有効にするには、以下の手順を行います。

  1. Player Settings ウィンドウを開き (Edit > Project Settings > Player)、Android を選択します。
  2. Publishing Settings セクションの Minify で、リリースビルド、デバッグビルドのいずれか、または両方のために ProGuard を選択します。

ノート: ProGuard はアプリケーションが必要とする重要なコードを取り除く場合があるため、これらのオプションは慎重に使用してください。

カスタムの proguard.txt ファイルを生成するには、Player 設定の Publishing Settings セクションで User Proguard File 設定を有効にします。これにより、すぐにプロジェクトの Assets/Plugins/Android/ フォルダーに proguard.txt ファイルが生成されます。

ProGuard の詳細は、ProGuard マニュアル を参照してください。

Gradle でビルドする場合のエラー

Gradle を使用して Android 用のアプリケーションをビルドするときにエラーが発生すると、Unity はエラーダイアログボックスを表示します。Troubleshoot ボタンを選択して、システムのブラウザーで Unity ドキュメントの Gradle のトラブルシュート を開いて下さい。


  • Android 用に Unity をライブラリとして使用は2019.3 で追加NewIn20193
Android スプラッシュスクリーンのカスタマイズ
Android マニフェスト