Gradle は、多数のビルドプロセスを自動化する Android のビルドシステムです。この自動化によって、多くの一般的なビルドエラーを回避できます。Unity では、DEX (Dalvik Executable 形式) ファイルのメソッド参照数が減少します。つまり、DEX 制限問題に遭遇する可能性が低くなります。
Unity はすべての Android ビルドに Gradle を使用します。Unity で出力パッケージ (.apk、.aab) をビルドするか、Unity から Gradle プロジェクトをエクスポートしてから、AndroidStudio などの外部ツールを使用してビルドできます。
Unity バージョン | Gradle バージョン |
---|---|
2020.3。2020.3.15f1 から含む。 | 6.1.1 |
2020.1、2020.2、2020.3 まで。2020.3.14f1 を含む | 5.6.4 |
2019.4 | 5.1.1 |
詳細は以下を参照してください。
Gradle プロジェクトをビルドするには、以下の手順に従います。
以下を選択します。
Unity プロジェクトを Gradle プロジェクトとしてエクスポートするには、Export Project 設定を有効にしてから、Export ボタンを選択します。これを行うと、Unity は指定したフォルダーに Gradle プロジェクトを生成し、.apk ファイルをビルドしません。このプロジェクトを AndroidStudio または別の外部ツールにインポートして、さらに変更を加えたり、そこからビルドしたりできます。
Unity 2019.3 以降のバージョンでは、2 つのモジュールを持つ 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 ライブラリプロジェクト がプラグインとして含まれる場合に使用されます。 |
Player Settings ウィンドウの Publishing Settings セクションで、カスタムの Gradle ビルドテンプレートを提供し、小型化オプションを選択できます。
Unity から APK をビルドするときに、unityLibrary モジュールのカスタム build.gradle
ファイルを使用できます。このファイルには、テンプレート変数 で指定された特定のビルドインストラクションが含まれます。テンプレート変数のリストは、次のセクションを参照してください。
unityLibrary モジュールに独自の build.gradle
ファイルを使用するには、以下の手順を行います。
Unity はデフォルトの mainTemplate.gradle
ファイルをプロジェクトの Assets/Plugins/Android/
フォルダーに作成します。新しいファイルへのパスは、Player 設定の Custom Gradle Template オプションの下にも表示されます。 Project ウィンドウの mainTemplate.gradle
ファイルをダブルクリックして、外部のテキストエディターで開きます。
デフォルトでは、Unity は、Unity のインストールディレクトリにある settingsTemplate.gradle
ファイルを使用して、ビルド用の settings.gradle
ファイルを作成します。 settings.gradle
ファイルには、ビルドプロセスに関与するプロジェクトコンポーネントが含まれています。Unity はデフォルトで以下のコンポーネントを作成します。これらは常に settings.gradle
ファイルに含まれている必要があります。
また、Android ライブラリのプラグインをプロジェクトに加えたい場合、**INCLUDES** エントリーを置き換えることによって、Unity は自動的にプラグインを設定ファイルに加えます。
settings.gradle
ファイルに、デフォルトで含まれないコンポーネントを追加したい場合は、プロジェクトの Assets/Plugins/Android/
フォルダーに settingsTemplate.gradle
ファイルを作成します。これは、デフォルトのテンプレートをオーバーライドします。
独自の settingsTemplate.gradle
ファイルを使用する場合、以下の行が含まれている必要があります。
include ':launcher', ':unityLibrary'
**INCLUDES**
IPostGenerateGradleAndroidProject は unityLibrary モジュールへのパスを返します。これにより、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 の小型化を使用して、アプリケーションを小さくして最適化できます。このオプションを有効にするには、以下の手順を行います。
ノート: ProGuard はアプリケーションが必要とする重要なコードを取り除く場合があるため、これらのオプションは慎重に使用してください。
カスタムの proguard.txt
ファイルを生成するには、Player 設定の Publishing Settings セクションで User Proguard File 設定を有効にします。これにより、すぐにプロジェクトの Assets/Plugins/Android/
フォルダーに proguard.txt
ファイルが生成されます。
ProGuard の詳細は、ProGuard マニュアル を参照してください。
Gradle を使用して Android 用のアプリケーションをビルドするときにエラーが発生すると、Unity はエラーダイアログボックスを表示します。Troubleshoot ボタンを選択して、システムのブラウザーで Unity ドキュメントの Gradle のトラブルシュート を開いて下さい。