Version: 2022.2
言語: 日本語
Android の要件と互換性
Android アプリマニフェスト

Android の Gradle

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

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

バージョン互換性

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

Unity バージョン Gradle バージョン
2022.2 7.2
2022.1
2021.3
2021.2
2021.1 (2021.1.16f1 以降)
2020.3 (2020.3.15f1 以降)
6.1.1
2021.1 (2021.1.15f1 まで)
2020.1, 2020.2, 2020.3 (2020.3.14f1 まで)
5.6.4
2019.4 5.1.1

If you want to use a custom Gradle or Android Gradle plugin version, it’s important to know the version compatibility between Gradle and the Android Gradle plugin. For information on this, see Update Gradle.

Gradle プロジェクトファイル

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

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

Gradle プロジェクトファイル 目的
Main Manifest This file contains important metadata about your Android application. For more information about the responsibilities of the Main/Unity Library Manifest see Unity Library Manifest.
Unity Launcher Manifest This file contains important metadata about your Android application’s launcher. For more information about the responsibilities of the Unity Launcher Manifest see Unity Launcher Manifest.
Main Gradle このファイルには、Android アプリケーションをライブラリとしてビルドする方法に関する情報が含まれています。
Launcher Gradle このファイルには、Android アプリケーションのビルド方法に関する指示が含まれています。
Base Gradle This file contains configuration that is shared between all other templates and Gradle projects.
Gradle Properties このファイルには、Gradle のビルド環境の設定が含まれています。これには、JVM (Java Virtual Machine) メモリ構成、Gradle が複数の JVM を使用してビルドできるようにするためのプロパティ、小型化を行うツールを選択するプロパティ、App Bundle のビルド時にネイティブ lib ファイル を圧縮しないためのプロパティが含まれます。
Proguard このファイルには、小型化処理の構成設定が含まれます。残すべき Java コードが小型化によって削除される場合は、そのコードを残すルールをこのファイルに追加する必要があります。

Gradle プロジェクトの構造

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

  • UnityLibrary モジュール: Unity のランタイムおよびプロジェクトデータを含んでいます。このモジュールは、他の任意の Gradle プロジェクト内に統合可能なライブラリです。これを使用して Unity を既存の Android アプリケーションに埋め込むことができます。
  • Launcher module: Contains the application’s name and all of its icons. This is a simple Android application module that launches Unity. You can replace it with your own application.
ファイル 説明 
build.gradle The base Gradle file that affects all modules in the Gradle project. It specifies which plugin versions to use in this Gradle project. One of these plugins is Android Gradle Plugin.

To influence the contents of this file, provide a custom Base Gradle Template.
gradle.properties A standard Gradle project file that configures how to build the application. Unity also adds the names of assets inside the Streaming Assets directory and specifies that these assets should be in the final application and Gradle shouldn’t compress them.

To influence the contents of this file, provide a custom Gradle Properties Template.

For information on the properties this file can contain, see Gradle property files.
launcher Launcher モジュール とそれに関連するすべてを含むディレクトリです。
  build.gradle Launcher モジュールのビルド方法が記された標準の Gradle プロジェクト build.gradle ファイルで、ビルドに含める依存関係のリストを含んでいます。Unity では Launcher モジュールは unityLibrary モジュールに依存します。つまり、Launcher モジュールのビルド時に unityLibrary がビルドされて最終的な結果に含まれます。

このファイルの内容に影響を与えるには、カスタムの Launcher Gradle Template を提供してください。
  src Launcher モジュールのソースコードとリソースを格納する、標準の Android Gradle プロジェクトディレクトリです。Unity はこのソースコードとリソースを main サブディレクトリ内に配置します。
    main A standard Android Gradle project directory that contains the launcher module’s source code and resources. Unity only supports the main source set. For more information about source sets, see Create source sets.
      AndroidManifest.xml A standard Android Gradle project file that Unity merges into the final Android App Manifest. It contains settings specific to the launcher module.

Important: If multiple manifest files specify different values for the same setting, the manifest merging process fails and you must fix it manually. You can specify rules for the manifest merger to automatically decide how to solve merge conflicts. For information on how to do this, see Manage manifest files.

For information on how to influence the contents of this file, see the Override the Android App Manifest.
      jniLibs Launcher モジュールの使用するネイティブコードライブラリを格納する、標準の Android Gradle プロジェクトディレクトリです。
      res 最終的なアプリケーションに含めるリソースを格納する、標準の Android Gradle プロジェクトディレクトリです。このリソースとは、アプリケーションアイコン、アプリケーションがランタイムでアクセスするテキスト、およびアプリケーションのスタイルの設定記述です。

このディレクトリ内のリソースを指定するには、Android の Player 設定 内で、アプリケーションアイコンとプロジェクト名を設定してください。
local.properties A standard Android Gradle project file that configures the environment of the build system. Unity specifies the path to SDK here so that by default, the exported Gradle project uses the same SDK that the Unity Editor used. NDK path used to be specified here with previous Gradle versions as well, but now Unity specifies it in the build.gradle files of launcher and unityLibrary modules.

For information on the properties this file can contain, see Gradle property files.
settings.gradle A standard Android Gradle project file that specifies all of the modules that make up this Android Gradle project. In projects that Unity exports, this usually only specifies the launcher and unityLibrary modules. However, if the Unity project uses Play Asset Delivery, each asset pack is a separate module, so this file lists them too. The file also specifes locations which contain Gradle project plugins. The locations are a combination of online repositories and java plugins inside of this project.

To influence the contents of this file, copy the settingsTemplate.gradle file in the PlaybackEngines/AndroidPlayer/Tools/GradleTemplates/directory into Assets/Plugins/Android in your Unity project. You can then append your custom modifications to this file.
unityLibrary unityLibrary モジュール とそれに関連するすべてを含むディレクトリです。
  build.gradle unityLibrary モジュールのビルド方法が記された標準の Gradle プロジェクト build.gradle ファイルで、ビルドに含める依存関係のリストが含まれています。Unityでは、unityLibrary モジュールは Unity プロジェクト内のすべての プラグイン に依存します。

このファイルの内容に影響を与えるには、カスタムの Main Gradle Template を提供してください。
  libs A common Android Gradle project directory that stores Android Archive (.aar) and Java Archive (.jar) plug-ins for the unityLibrary module.

For exported Unity projects, this contains the unity-classes.jar as well as all .jar and .aar plugins in the Unity project.

Note: This directory does not contain Android Library Projects plug-ins. Instead, Unity copies these into the Gradle project as separate modules.
    unity-classes.jar A Unity-specific java plugin that contains java code that the Unity engine uses.
  proguard-unity.txt A Unity-specific file that contains ProGuard configurations for Unity java code (code in unity-classes.jar plugin). Configurations are effective when Minification is enabled in Player settings (or if it is enabled by manually modifying gradle build files).
  src unityLibrary モジュールのソースコードとリソースを格納する、標準の Android Gradle プロジェクトディレクトリです。Unity はこのソースコードとリソースを main サブディレクトリに配置します。
    main unityLibrary モジュールのソースコードとリソースを格納する、標準の Android Gradleプロジェクトディレクトリです。Unity は main ソースセットのみをサポートします。ソースセットに関する詳細は、ソースセットの作成 を参照してください。
      AndroidManifest.xml Unity によって最終的な Android アプリマニフェスト 内にマージされる、標準の Android Gradle プロジェクトファイルです。unityLibrary モジュール固有の設定が含まれています。

このファイルの内容に影響を与えるには、カスタムの Custom Main Manifest を提供してください。
      assets プロジェクトのアセットを格納する標準の Android Gradle ディレクトリです。Unity は Unity プロジェクトのリソースを bin サブディレクトリに配置します。
        bin Unity によって Unity プロジェクトのすべてのリソースが追加される、標準の Android Gradle プロジェクトディレクトリです。
      java A standard Android Gradle project directory that contains uncompiled java source files for the unityLibrary module. Unity only uses this directory to store the UnityPlayerActivity source file. For information on how to extend UnityPlayerActivity, see Extending the UnityPlayerActivity Java Code.
      jniLibs unityLibrary モジュールの使用するネイティブコードライブラリを格納する、標準の Android Gradle プロジェクトディレクトリです。Unity は、Unity エンジンライブラリ libil2cpplibmain、および libunity をこのディレクトリに配置します。また、すべての [Native (C++) プラグイン (AndroidNativePlugins)] もこのディレクトリに配置されます。
      res 最終的なアプリケーションに含めるリソースを格納する、標準の Android Gradle プロジェクトディレクトリです。エクスポートされた Unity プロジェクトの場合、unityLibrary モジュールの res ディレクトリには、unityLibrary モジュールが使用するスタイルの定義のみが含まれます。
proguard-user.txt This is a Unity project specific file which contains ProGuard configurations for the project’s java code and 3rd party java plug-ins. Just like ProGuard-unity.txt Gradle uses it if you enable minification.

To create this file, enable Custom Proguard File in the Android Player Settings.
Android の要件と互換性
Android アプリマニフェスト