Version: Unity 6.0 (6000.0)
言語 : 日本語
Android の要件と互換性
Unity and Gradle version compatibility

Android の Gradle

Gradle は、複数のビルドプロセスを自動化し、一般的なビルドエラーの多くを防止するビルドシステムです。Unity はすべての Android ビルドに Gradle を使用します。Unity で出力パッケージ (.apk、.aab) をビルドするか、Unity から Gradle プロジェクトをエクスポートしてから、Android Studio などの外部ツールを使用してビルドできます。

トピックごとの詳細は、以下を参照してください。

バージョン互換性

Gradle のバージョンと Unity のバージョンの互換性は、以下の表の通りです。

Unity バージョン Gradle バージョン Android Gradle プラグインバージョン
6000.0 8.4 8.3.0

その他の Unity リリースと互換性のある Gradle および Android Gradle プラグインのバージョンについては、2022.32021.3 を参照してください。

Gradle または Android Gradle プラグインのカスタムバージョンを使用したい場合は、Gradle と Android Gradle プラグインとのバージョン互換性について知ることが重要です。詳しくは、Gradle のアップデート を参照してください。

Gradle プロジェクトファイル

Gradle プロジェクトファイルは、含めるモジュールやビルド方法など、アプリケーションの様々な側面を設定します。

次の表は、Unity プロジェクト用に存在する Gradle プロジェクトファイルの一覧と、それぞれの役割を説明しています。

Gradle プロジェクトファイル 説明
Main Manifest このファイルには、Android アプリケーションに関する重要なメタデータが含まれています。Main/Unity Library Manifest の機能の詳細は、Unity Library Manifest を参照してください。
Unity Launcher Manifest このファイルには、Android アプリケーションのランチャーに関する重要なメタデータが含まれています。Unity Launcher Manifest の機能の詳細は、Unity Launcher Manifest を参照してください。
Main Gradle このファイルには、Android アプリケーションをライブラリとしてビルドする方法に関する情報が含まれています。
Launcher Gradle このファイルには、Android アプリケーションのビルド方法に関する指示が含まれています。
Base Gradle このファイルには、他のすべてのテンプレートおよび Gradle プロジェクトの間で共有される設定が含まれています。
Gradle Properties このファイルには、Gradle のビルド環境の設定が含まれています。これには、JVM (Java Virtual Machine) メモリ設定、Gradle が複数の JVM を使用してビルドできるようにするためのプロパティ、小型化を行うツールを選択するプロパティ、App Bundle のビルド時にネイティブ lib ファイル を圧縮しないためのプロパティが含まれます。
Gradle Settings このファイルには、アプリケーションに必要な外部依存関係を解決するためのアーティファクトリポジトリの宣言が含まれています。
Proguard このファイルには、小型化処理の構成設定が含まれます。残すべき Java コードが小型化によって削除される場合は、そのコードを残すルールをこのファイルに追加する必要があります。

Gradle プロジェクトの構造

Unity プロジェクトを Gradle プロジェクトとしてエクスポートすると、以下の 2 つのモジュールを持つ Gradle プロジェクトが Unity によって作成されます。

  • unityLibrary モジュール: Unity ランタイムデータおよびプロジェクトデータが格納されています。このモジュールは、他の任意の Gradle プロジェクト内に統合可能なライブラリです。これを使用して Unity を既存の Android アプリケーションに埋め込むことができます。
  • Launcher モジュール:アプリケーションの名前とそのすべてのアイコンが格納されています。Unity を起動する簡単な Android アプリケーションモジュールです。これは独自のアプリケーションに置き換えることができます。
ファイル 説明
launcher Launcher モジュール とそれに関連するすべてを含むディレクトリです。
  src Launcher モジュールのソースコードとリソースを格納する、標準の Android Gradle プロジェクトディレクトリです。Unity はこのソースコードとリソースを main サブディレクトリに配置します。
    main Launcher モジュールのソースコードとリソースを格納する、標準の Android Gradle プロジェクトディレクトリです。Unity は main ソースセットのみをサポートします。ソースセットの詳細は、ソースセットの作成 を参照してください。
      res 最終的なアプリケーションに含めるリソースを格納する、標準の Android Gradle プロジェクトディレクトリです。このリソースとは、アプリケーションアイコン、アプリケーションがランタイムでアクセスするテキスト、およびアプリケーションのスタイルの設定記述です。

このディレクトリ内のリソースを指定するには、Android Player 設定 内で、アプリケーションアイコンとプロジェクト名を設定してください。
      AndroidManifest.xml Unity によって最終的な Android アプリマニフェスト 内にマージされる、標準の Android Gradle プロジェクトファイルです。Launcher モジュール固有の設定が含まれています。

重要: 複数のマニフェストファイルが同じ設定に異なる値を指定すると、マニフェストのマージプロセスが失敗し、手動修正が必要になります。マニフェストマージャーにルールを指定することで、マージ競合の解決方法を自動的に決定できます。この方法については、マニフェストファイルを管理する を参照してください。

このファイルの内容の変更方法は、Gradle プロジェクトファイルの修正 を参照してください。
  build.gradle Launcher モジュールのビルド方法が記された標準の Gradle プロジェクト build.gradle ファイルで、ビルドに加える依存関係のリストが含まれています。Unity では Launcher モジュールは unityLibrary モジュールに依存するため、Launcher モジュールをビルドすると、unityLibrary がビルドされ、最終結果に追加されます。

このファイルの内容を変更するには、カスタムの Launcher Gradle Template を用意します。
  setupSymbols.gradle Unity 固有のファイル。デバッグシンボルファイルを App Bundle に埋め込み、従来型の .so 拡張子のシンボルファイルを作成するためのビルドスクリプトが含まれています。
shared プロジェクト内の複数のモジュールに適用される共通の設定情報を格納するディレクトリ。
  keepUnitySymbols.gradle Unity 固有のファイルで、スタックトレースを解決するためのランタイムバイナリにデバッグメタデータを格納するスクリプトが含まれています。
unityLibrary unityLibrary モジュール とそれに関連するすべてを含むディレクトリです。
  libs unityLibrary モジュール用の Android Archive (.aar) および Java Archive (.jar) プラグインを格納する、共通の Android Gradle プロジェクトディレクトリです。

エクスポートされた Unity プロジェクトの場合、ここには unity-classes.jar と、Unity プロジェクト内のすべての .jar および .aar プラグインが格納されます。

ノート: このディレクトリには Android Library Projects プラグインは格納されません。これらのプラグインは、別のモジュールとして Gradle プロジェクト内にコピーされます。
    unity-classes.jar Unity エンジンの使用する Java コードを格納する、Unity 専用の Java プラグインです。
  src unityLibrary モジュールのソースコードとリソースを格納する、標準の Android Gradle プロジェクトディレクトリです。Unity はこのソースコードとリソースを main サブディレクトリに配置します。
    main unityLibrary モジュールのソースコードとリソースを格納する、標準の Android Gradle プロジェクトディレクトリです。Unity は main ソースセットのみをサポートします。ソースセットの詳細は、ソースセットの作成 を参照してください。
      assets プロジェクトのアセットを格納する標準の Android Gradle ディレクトリです。Unity は Unity プロジェクトのリソースを bin サブディレクトリに配置します。
        bin 標準の Android Gradle プロジェクトディレクトリです。Unity は、Unity プロジェクトのすべてのリソースをここに追加します。
      java unityLibrary モジュール用のコンパイルされていない Java ソースファイルを格納する、標準の Android Gradle プロジェクトディレクトリです。Unity は、UnityPlayerActivity ソースファイルを格納するためだけにこのディレクトリを使用します。UnityPlayerActivity の拡張方法は UnityPlayerActivity の Java コードの拡張に関するドキュメント を参照してください。
      jniLibs unityLibrary モジュールの使用するネイティブコードライブラリを格納する、標準の Android Gradle プロジェクトディレクトリです。Unity は、libil2cpplibmainlibunity Unity エンジンライブラリをこのディレクトリに配置します。また、すべての Native (C++) プラグイン もこのディレクトリに配置されます。
      jniStaticLibs unityLibrary モジュールが libil2cpp.so の作成に使用する baselib.a ライブラリを格納する、標準の Android プロジェクトディレクトリです。
      res 最終的なアプリケーションに含めるリソースを格納する、標準の Android Gradle プロジェクトディレクトリです。エクスポートされた Unity プロジェクトの場合、unityLibrary モジュールの res ディレクトリには、unityLibrary モジュールが使用するスタイルの定義のみが含まれます。
      AndroidManifest.xml Unity によって最終的な Android アプリマニフェスト 内にマージされる、標準の Android Gradle プロジェクトファイルです。unityLibrary モジュール固有の設定が含まれています。

このファイルの内容を変更するには、カスタムの Custom Main Manifest を設定してください。
  symbols デバッグシンボル のビルド設定を使用してアプリケーションのシンボルファイルを生成する場合に Unity が追加するディレクトリです。このディレクトリには、デバッグメタデータと Unity ライブラリのシンボルテーブルセクションを含むファイルが格納されます。Android Studio でディレクトリパスを設定して、デバッグ中に関数名を解決できます。
  build.gradle unityLibrary モジュールのビルド方法が記された標準の Gradle プロジェクトの build.gradle ファイルで、ビルドに含める依存関係のリストが含まれています。Unityでは、unityLibrary モジュールは Unity プロジェクト内のすべての プラグイン に依存します。

このファイルの内容を変更するには、カスタムの Main Gradle Template を設定してください。
  proguard-unity.txt Unity の Java コード (unity-classes.jar プラグイン内のコード) の ProGuard 設定を格納する、Unity 固有のファイルです。設定は、Player 設定で Minification が有効になっている場合 (または Gradle ビルドファイルを手動修正して有効にした場合) に有効です。
build.gradle Gradle プロジェクト内のすべてのモジュールに影響を与える基本の Gradle ファイルです。Gradle プロジェクトで使用するプラグインのバージョンを指定します。Android Gradle プラグインがその一例です。

このファイルの内容を変更するには、カスタムの Base Gradle Template を設定してください。
proguard-user.txt プロジェクトの Java コードとサードパーティ製の Java プラグインの ProGuard 設定を格納する、Unity プロジェクト固有のファイルです。ProGuard-unity.txt 同様、Gradle は、小型化が有効にされた場合にこのファイルを使用します。

このファイルを作成するには、Android Player 設定Custom Proguard File を有効にしてください。
gradle.properties アプリケーションのビルド方法を設定する標準の Gradle プロジェクトファイル。このファイルの Unity 固有のプロパティは、gradle.properties ファイルのプロパティ を参照してください。このファイルに追加できる Gradle プロパティは、Gradle プロパティファイル を参照してください。

このファイルの内容を変更するには、カスタムの Gradle Properties Template を設定します。
local.properties ビルドシステムの環境を設定する、標準の Android Gradle プロジェクトファイルです。Unity は、ここに SDK へのパスを指定し、エクスポートされた Gradle プロジェクトが Unity エディターと同じ SDK をデフォルトで使用するようにします。以前の Gradle バージョンでは NDK のパスもここで指定していましたが、現在は Launcher および unityLibrary モジュールの build.gradle ファイルで指定しています。

このファイルに追加できるプロパティは、Gradle プロパティファイル を参照してください。
settings.gradle Android Gradle プロジェクトを構成するすべてのモジュールを指定する、標準の Android Gradle プロジェクトファイルです。Unity がエクスポートするプロジェクトでは、通常、Launcher および unityLibrary モジュールのみを指定します。ただし、Unity プロジェクトが Play Asset Delivery を使用する場合は、各アセットパックが別々のモジュールになるため、このファイルにはそれらも追加されます。また、このファイルは、Gradle プロジェクトプラグインが格納される場所も指定します。場所は、このプロジェクト内のオンラインリポジトリと Java プラグインの組み合わせです。

このファイルの内容に影響を変更するには、カスタムの Gradle Settings Template を設定してください。

gradle.properties ファイルのプロパティ

gradle.properties ファイルには、Unity 固有の以下のプロパティが含まれます。

プロパティ 説明
unityStreamingAssets Streaming Assets ディレクトリ内のアセットの名前を示します。Unity は、これらのアセットを最終的なアプリケーションに追加し、Gradle が圧縮しないよう指示します。
unityTemplateVersion Unity が使用する Gradle テンプレートファイルのバージョン。プロジェクトの Gradle テンプレートバージョンが指定されたバージョンと異なる場合、Unity はエラーをスローして Gradle ファイルの更新と空のフォルダーへのプロジェクトのビルドを通知します。
unity.projectPath Unity プロジェクトのパスです。
unity.debugSymbolLevel Unity が使用するデバッグシンボルレベル。
unity.buildToolsVersion Unity が使用するビルドツールのバージョン。
unity.minSdkVersion Unity が使用する最小 API レベル。
unity.targetSdkVersion Unity が使用するターゲット API レベル。
unity.compileSdkVersion ビルドプロセス中にアプリケーションのコンパイルに使用される Android SDK のコンパイル SDK バージョン。
unity.applicationId Unity が使用するアプリケーション ID。例えば、com.MyCompany.MyApp など。
unity.abiFilters Unity が使用するアプリケーションに含まれる、カンマで区切られた Application Binary Interface (ABI) 設定。例えば、armeabi-v7a、arm64-v8a など。
unity.versionCode アプリケーションの内部バージョン番号。アプリケーションのバージョンがどれだけ新しいかを示すために使用されます。数値が大きいほど、より新しいバージョンを表します。
unity.versionName 文字列で表されるアプリケーションのバージョン番号。このバージョン番号はユーザーに表示されます。
unity.namespace Unity が使用するアプリケーション名前空間。例えば、com.MyCompany.MyApp など。
unity.androidSdkPath External ToolsAndroid セクションで設定された Android Software Development Kit (SDK) のインストールフォルダーパス。メニュー: Edit > Preferences > External Tools (macOS:Unity > Settings > External Tools)。
unity.androidNdkPath External ToolsAndroid セクションで設定された Android Native Development Kit (NDK) のインストールフォルダーパス。メニュー: Edit > Preferences > External Tools (macOS:Unity > Settings > External Tools)。
unity.androidNdkVersion External ToolsAndroid セクションで設定された Android Native Development Kit (NDK) のバージョン。メニュー: Edit > Preferences > External Tools (macOS:Unity > Settings > External Tools)。
unity.jdkPath External ToolsAndroid セクションで設定された Java Development Kit (JDK) のインストールフォルダーパス。メニュー: Edit > Preferences > External Tools (macOS:Unity > Settings > External Tools)。
unity.javaCompatabilityVersion Unity で使用する Java 互換性バージョン。
Android の要件と互換性
Unity and Gradle version compatibility