Unity3d:Gradle for Android
推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生
Gradle for Android
Gradle 是一个构建系统,可自动执行许多构建过程并防止许多常见的构建错误。Unity 将 Gradle 用于所有 Android 版本。您可以在 Unity 中构建输出包(.apk、.aab),也可以从 Unity 导出 Gradle 项目,然后使用 Android Studio 等外部工具构建它。
有关以下内容的更多信息:
- Gradle:请参阅 Gradle 用户手册和 Android Gradle 插件文档。
- 将 Unity 项目导出为 Gradle 项目:请参阅导出 Android 项目。
- 构建输出包 (.apk):请参阅有关构建适用于 Android 的应用程序的 Unity 文档和有关配置构建的 Android 开发人员文档。
- 构建输出包 (.aab):请参阅 Unity 文档 Play 资源交付和 Android 开发者文档 Android 应用捆绑包。
版本兼容性
下表显示了 Gradle 版本和 Unity 版本之间的兼容性。
统一版本 | 格拉德尔版本 |
---|---|
2022.1 2021.2 2021.1 2021.1F16 1.2020 3.2020F3 | 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 |
如果您想使用自定义的 Gradle 或 Android Gradle 插件版本,请务必了解 Gradle 和 Android Gradle 插件之间的版本兼容性。有关这方面的信息,请参阅更新 Gradle。
格拉德尔项目结构
如果将 Unity 项目导出为 Gradle 项目,Unity 将创建一个包含两个模块的 Gradle 项目:
- UnityLibrary 模块:包含 Unity 运行时和项目数据。此模块是一个库,您可以将其集成到任何其他 Gradle 项目中。您可以使用它将 Unity 嵌入到现有的 Android 应用程序中。
- 启动器模块:包含应用程序的名称及其所有图标。这是一个启动 Unity 的简单 Android 应用程序模块。您可以将其替换为自己的应用程序。
文件 | 描述 |
---|---|
build.gradle | 影响 Gradle 项目中的所有模块的基本 Gradle 文件。它指定了要使用的Android Gradle插件版本以及java插件的位置。这些位置是该项目内部的在线存储库和 Java 插件的组合。要影响此文件的内容,请提供自定义基本 Gradle 模板。 |
gradle.properties | 一个标准的 Gradle 项目文件,用于配置如何构建应用程序。Unity 还会在流资产目录中添加资源的名称,并指定这些资源应位于最终应用程序中,而 Gradle 不应压缩它们。 要影响此文件的内容,请提供自定义 Gradle 属性模板。 有关此文件可以包含的属性的信息,请参阅 Gradle 属性文件。 |
发射 | 包含启动器模块及其相关所有内容的目录。 |
build.gradle | 一个标准的 Gradle 项目 build.gradle 文件,描述如何构建启动器模块,并包含要包含在构建中的依赖项列表。在 Unity 中,启动器模块依赖于 unityLibrary 模块,这意味着在构建启动器模块时,unityLibrary 会构建并包含在最终结果中。 要影响此文件的内容,请提供自定义启动器Gradle模板。 |
来源 | 一个标准的 Android Gradle 项目目录,其中包含启动器模块的源代码和资源。Unity 将源代码和资源放在子目录中。main |
主要 | 一个标准的 Android Gradle 项目目录,其中包含启动器模块的源代码和资源。Unity 仅支持主源集。有关源集的详细信息,请参阅创建源集。 |
安卓清单.xml | Unity 合并到最终 Android App Manifest 中的标准 Android Gradle 项目文件。它包含特定于启动器模块的设置。 重要提示:如果多个清单文件为同一设置指定了不同的值,则清单合并过程将失败,您必须手动修复。您可以为清单合并指定规则,以自动决定如何解决合并冲突。有关如何执行此操作的信息,请参阅管理清单文件。 有关如何影响此文件内容的信息,请参阅替代 Android 应用清单。 |
jniLibs | 一个标准的 Android Gradle 项目目录,其中包含启动器模块使用的本机代码库。 |
无 | 一个标准的 Android Gradle 项目目录,其中包含要包含在最终应用程序中的资源。这些资源是应用程序图标、应用程序在运行时访问的文本以及应用程序样式说明。 要指定此目录中的资源,请在 Android 播放器设置中设置应用程序图标和项目名称。 |
本地属性 | 一个标准的 Android Gradle 项目文件,用于配置构建系统的环境。Unity 在此处指定了 SDK 和 NDK 的路径,以便默认情况下,导出的 Gradle 项目使用与 Unity 编辑器相同的 SDK 和 NDK。 有关此文件可以包含的属性的信息,请参阅 Gradle 属性文件。 |
settings.gradle | 一个标准的 Android Gradle 项目文件,用于指定构成此 Android Gradle 项目的所有模块。在 Unity 导出的项目中,这通常只指定启动器和 unityLibrary 模块。但是,如果 Unity 项目使用 Play 资源交付](播放资源交付.html),则每个资源包都是一个单独的模块,因此此文件也会列出它们。 要影响此文件的内容,请将目录中的文件复制到 Unity 项目中。然后,您可以将自定义修改追加到此文件。 settingsTemplate.gradle PlaybackEngines/AndroidPlayer/Tools/GradleTemplates/ Assets/Plugins/Android |
团结库 | 包含 unityLibrary 模块及其相关所有内容的目录。 |
build.gradle | 一个标准的 Gradle 项目 build.gradle 文件,描述如何构建 unityLibrary 模块,并包含要包含在构建中的依赖项列表。在 Unity 中,unityLibrary 模块依赖于 Unity 项目中的所有插件。 要影响此文件的内容,请提供自定义的主 Gradle 模板。 |
库 | 一个常见的 Android Gradle 项目目录,用于存储 unityLibrary 模块的 Android Archive (.aar) 和 Java Archive (.jar) 插件。 对于导出的 Unity 项目,它包含 Unity 项目中的所有 .jar 和 .aar 插件。 注意:此目录不包含 Android 库项目插件。相反,Unity 会将它们作为单独的模块复制到 Gradle 项目中。 unity-classes.jar |
团结类.jar | 一个特定于 Unity 的 Java 插件,其中包含 Unity 引擎使用的 Java 代码。 |
亲卫团结.txt | 一个特定于 Unity 的文件,其中包含 Unity java 代码的 ProGuard 配置(Unity 类中的代码.jar插件)。在播放器设置中启用缩小(或通过手动修改 gradle 构建文件启用缩小)时,配置有效。 |
来源 | 一个标准的 Android Gradle 项目目录,包含 unityLibrary 模块的源代码和资源。Unity 将源代码和资源放在子目录中。main |
主要 | 一个标准的 Android Gradle 项目目录,包含 unityLibrary 模块的源代码和资源。Unity 仅支持主源集。有关源集的详细信息,请参阅创建源集。 |
安卓清单.xml | Unity 合并到最终 Android App Manifest 中的标准 Android Gradle 项目文件。它包含特定于 unityLibrary 模块的设置。 若要影响此文件的内容,请提供自定义自定义主清单。 |
资产 | 包含项目资产的标准 Android Gradle 目录。Unity 将 Unity 项目的资源放在子目录中。bin |
。.bin | 一个标准的 Android Gradle 项目目录,Unity 将 Unity 项目的所有资源添加到该目录。 |
.java | 一个标准的 Android Gradle 项目目录,其中包含 unityLibrary 模块的未编译 Java 源文件。Unity 仅使用此目录来存储 UnityPlayerActivity 源文件。有关如何扩展 UnityPlayerActivity 的信息,请参阅扩展 UnityPlayerActivity Java 代码。 |
jniLibs | 一个标准的 Android Gradle 项目目录,其中包含 unityLibrary 模块使用的本机代码库。Unity 将 、 和 Unity 引擎库放在此目录中。Unity 还会在此目录中放置任何 [Native (C++) 插件(AndroidNativePlugins)。libil2cpp libmain libunity |
无 | 一个标准的 Android Gradle 项目目录,其中包含要包含在最终应用程序中的资源。对于导出的 Unity 项目,unityLibrary 模块的目录仅包含 unityLibrary 模块使用的样式描述。res |
proguard-user.txt | 这是一个特定于 Unity 项目的文件,其中包含项目的 Java 代码和第三方 Java 插件的 ProGuard 配置。就像 Gradle 在启用缩小时使用它一样。 要创建此文件,请在 Android 播放器设置中启用自定义专业保护文件。 ProGuard-unity.txt |
3D建模学习工作室整理翻译,转载请标明出处!