Version: 6000.3
语言: 中文
Gradle 项目文件
gradle.properties 文件中的 Unity 特定属性

Gradle 项目结构

导出 Unity 项目时,Unity 会创建一个Gradle一种 Android 构建系统,可自动执行多个构建过程。这种自动化意味着许多常见的生成错误不太可能发生。更多信息
请参阅术语表
项目,其中包含以下主要模块:

  • UnityLibrary:包含 Unity 运行时和项目数据。此模块是一个库,您可以将其集成到任何其他 Gradle 项目中。使用它将 Unity 嵌入到现有的 Android 应用程序中。
  • 启动器模块:包含应用程序的名称及其所有图标。这是一个简单的 Android 应用程序模块,用于启动 Unity,如果需要,您可以将其替换为自己的应用程序。

有关 Gradle 项目结构的概述,请参阅下图。

<exported_project_root>/
├── gradle/
├── launcher/
│   └── src/
│   │    └── main/
│   │       ├── res/
│   │       ├── AndroidManifest.xml
│   ├── build.gradle
│   ├── setupSymbols.gradle
├── shared/
│   └── keepUnitySymbols.gradle
├── unityLibrary/
│   ├── libs/
│   │   └── unity-classes.jar
│   └── src/
│       └── main/
│           ├── assets/
│           │   └── bin
│           ├── cpp/
│           ├── java/
│           ├── jniLibs/
│           ├── res/
│           ├── resources/
│           └── AndroidManifest.xml
├── build.gradle
├── proguard-unity.txt
├── gradle.properties
├── local.properties
└── settings.gradle

有关 Gradle 项目中每个文件/目录的说明,请参阅下表。

文件/目录 描述
gradle/ 包含 Gradle 包装文件的目录。有关更多信息,请参阅 Gradle 包装器文件 (Android)。
launcher/ 包含启动器模块和关联文件的目录。
launcher/src 一个标准的 Android Gradle 项目目录,其中包含启动器模块的源代码和资源。Unity 将源代码和资源放在main子目录。
launcher/src/main 一个标准的 Android Gradle 项目目录,其中包含启动器模块的源代码和资源。Unity 仅支持主源代码集。有关源集的更多信息,请参阅创建源集(Android)。
launcher/src/main/res 一个标准的 Android Gradle 项目目录,其中包含要包含在最终应用中的资源。这些资源是应用程序图标、应用程序在运行时访问的文本以及应用程序样式说明。

注意:要指定此目录中的资源,请在 Android 播放器设置中设置应用程序图标和项目名称。
launcher/src/main/AndroidManifest.xml Unity 合并到最终 Android 应用清单中的标准 Android Gradle 项目文件。它包含特定于启动器模块的设置。

重要提示: 如果多个清单文件为同一设置指定了不同的值,则清单合并过程将失败,您必须手动修复它。您可以指定清单合并的规则,以自动决定如何解决合并冲突。有关如何执行此作的信息,请参阅管理清单文件(Android)。

如需了解如何自定义此文件的内容,请参阅修改 Gradle 项目文件
launcher/build.gradle 标准 Gradle 项目build.gradle描述如何构建launcher模块,并包含要包含在构建中的依赖项列表。在 Unity 中,launcher模块依赖于unityLibrary模块,这意味着unityLibrary构建并包含在构建启动器模块时的最终结果中。

注意:要自定义此文件的内容,请提供自定义 Launcher Gradle 模板
launcher/setupSymbols.gradle 特定于 Unity 的文件,其中包含用于将调试符号文件嵌入到 App Bundle 中并使用旧版创建符号文件的生成脚本.so外延。
shared 包含适用于项目中多个模块的通用配置信息的目录。
shared/keepUnitySymbols.gradle 特定于 Unity 的文件,其中包含一个脚本,用于将调试元数据存储在运行时二进制文件中,以解析堆栈跟踪。
unityLibrary 包含unityLibrary模块和相关文件。
unityLibrary/libs 一个通用的 Android Gradle 项目目录,.jar用于存储 unityLibrary模块。

对于导出的 Unity 项目,这包含
unity-classes.jar以及 Unity 项目中的所有 .jar 和 .aar 插件。

注意:此目录不包含 Android 库插件。相反,Unity 会将这些插件作为单独的模块复制到 Gradle 项目中。
unityLibrary/libs/unity-classes.jar 特定于 Unity 的 Java 插件,其中包含 Unity 引擎使用的 Java 代码。
unityLibrary/src 标准 Android Gradle 项目目录,其中包含unityLibrary模块的源代码和资源。Unity 将源代码和资源放在main子目录。
unityLibrary/src/main 标准 Android Gradle 项目目录,其中包含unityLibrary模块的源代码和资源。Unity 仅支持主源集。有关源集的更多信息,请参阅创建源集(Android)。
unityLibrary/src/main/assets 包含项目资产的标准 Android Gradle 目录。Unity 将 Unity 项目的资源放在bin子目录。
unityLibrary/src/main/assets/bin Unity 将所有 Unity 项目资源添加到的标准 Android Gradle 项目目录。
unityLibrary/src/main/cpp 包含本机 C 和 C++ 代码的目录。
unityLibrary/src/main/java 一个标准的 Android Gradle 项目目录,其中包含unityLibrary模块。Unity 仅使用此目录来存储UnityPlayerActivity源文件。有关如何扩展的信息UnityPlayerActivity,请参阅扩展默认 Unity 活动
unityLibrary/src/main/jniLibs 一个标准的 Android Gradle 项目目录,其中包含原生代码库,其中unityLibrary模块使用。Unity 将libil2cpp,libmainlibunityUnity 引擎库。Unity 还将适用于 Android 的任何原生插件都放在此目录中。
unityLibrary/src/main/jniStaticLibs 标准 Android 项目目录,其中包含baselib.a库中unityLibrary模块用于创建libil2cpp.so.
unityLibrary/src/main/res 一个标准的 Android Gradle 项目目录,其中包含要包含在最终应用中的资源。对于导出的 Unity 项目,将res目录中的unityLibrary模块仅包含unityLibrary模块使用。
unityLibrary/src/main/AndroidManifest.xml Unity 合并到最终 Android 应用清单中的标准 Android Gradle 项目文件。它包含特定于unityLibrary模块。

注意:要自定义此文件的内容,请提供自定义自定义主清单
unityLibrary/symbols 如果您选择通过 Debug Symbols 构建设置为应用程序生成符号文件,则 Unity 添加的目录。此目录包含包含调试元数据的文件和 Unity 库的符号表部分。您可以在 Android Studio 中设置目录路径,以便在调试期间解析函数名称。
build.gradle 标准 Gradle 项目build.gradle描述如何构建unityLibrary模块,并包含要包含在构建中的依赖项列表。在 Unity 中,unityLibrary模块依赖于所有插件在 Unity 外部创建的一组代码,用于在 Unity 中创建功能。可以在 Unity 中使用两种插件:托管插件(使用 Visual Studio 等工具创建的托管 .NET 程序集)和本机插件(特定于平台的本机代码库)。更多信息
请参阅术语表
在 Unity 项目中。

注意:如需自定义此文件的内容,请提供自定义主 Gradle 模板
proguard-unity.txt 一个特定于 Unity 的文件,其中包含 Unity Java 代码的 ProGuard 配置(代码unity-classes.jar插件)。在 Android 中启用缩小时,配置有效玩家设置设置,用于为 Unity 构建的最终游戏设置各种特定于玩家的选项。更多信息
请参阅术语表
或手动修改 Gradle 构建文件。
build.gradle 影响 Gradle 项目中所有模块的基本 Gradle 文件。它指定要在此 Gradle 项目中使用的插件版本。其中一个插件是 Android Gradle 插件。

注意:如需自定义此文件的内容,请添加自定义 Base Gradle 模板
proguard-user.txt 这是一个特定于 Unity 项目的文件,其中包含项目 Java 代码和第三方 Java 插件的 ProGuard 配置。似ProGuard-unity.txt,Gradle 会在您启用缩小时使用此文件。

注意:要创建此文件,请在 Android 播放器设置中启用自定义 Proguard 文件
gradle.properties 用于配置如何构建应用的标准 Gradle 项目文件。有关此文件中的 Unity 特定属性的信息,请参阅 gradle.properties 文件中的属性。如需了解此文件可以包含的 Gradle 属性,请参阅 Gradle 属性文件 (Android)。

注意:如需自定义此文件的内容,请添加自定义 Gradle 属性模板
local.properties 用于配置构建系统环境的标准 Android Gradle 项目文件。Unity 在此处指定了 SDK 的路径,因此默认情况下,导出的 Gradle 项目使用与 Unity 编辑器使用的相同 SDK。以前,NDK 路径也在此文件中指定了以前的 Gradle 版本,但现在 Unity 在build.gradlelauncherunityLibrary 模块的文件。

如需了解此文件可以包含的属性,请参阅 Gradle 属性文件 (Android)。
settings.gradle 一个标准 Android Gradle 项目文件,用于指定构成此 Android Gradle 项目的所有模块。在 Unity 导出的项目中,这通常只指定启动器和 unityLibrary 模块。但是,如果 Unity 项目使用 Play Asset Delivery,则每个资源包都是一个单独的模块,因此此文件也会列出它们。该文件还指定了包含 Gradle 项目插件的位置。这些位置是该项目内部的在线存储库和 java 插件的组合。

如需自定义此文件的内容,请提供自定义 Gradle 设置模板

其他资源

Gradle 项目文件
gradle.properties 文件中的 Unity 特定属性