一个抽象类,包含在构建过程中修改自定义 Android Gradle 项目文件的方法。
注意:您可以使用此类修改在除默认 unityLibrary
和 launcher
Android Gradle 模块之外的其他模块中设置的 Gradle 项目文件。如果您使用此类修改默认模块中 Android Gradle 项目文件的内容,则构建将失败。
此抽象类包含两个回调方法:Setup
和 OnModifyAndroidProjectFiles
。Unity 在构建开始前调用 Setup
,此方法设置构建系统的先决条件。Unity 在创建 Gradle 项目后调用 OnModifyAndroidProjectFiles
,这意味着在此方法中进行的所有修改都直接应用于该项目。
生成的 文件使用 Groovy 语法,并且所有字符串类型属性都使用双引号。
如果您的 OnModifyAndroidProjectFiles
回调依赖于项目中的其他文件(或本地计算机上的文件),或者您希望回调生成新文件,则必须使用 Setup
预先将此信息提供给构建系统。增量构建管道需要此信息来了解此回调生成的文件以及此回调依赖的文件。这样,构建管道就可以识别何时需要运行此步骤以及何时可以跳过此步骤。Setup
方法返回 AndroidProjectFilesModifierContext。有关更多信息,请参阅 AndroidProjectFilesModifierContext。
有关 Unity 何时调用此类中的方法的信息,请参阅 Unity 如何构建 Android 应用程序。
在 Setup
方法中,您可以指定要创建的自定义 Gradle 模块中 Gradle 文件的路径。以下示例演示了如何为自定义模块 mycustommodule
指定这些路径以及修改 build.gradle
和 AndroidManifest.xml
文件中的值。
using System.IO; using UnityEditor.Android; using Unity.Android.Gradle;
public class ModifyProjectScript : AndroidProjectFilesModifier { public override AndroidProjectFilesModifierContext Setup() { var ctx = new AndroidProjectFilesModifierContext(); ctx.Outputs.AddBuildGradleFile("mycustommodule/build.gradle"); ctx.Outputs.AddManifestFile("mycustommodule/src/main/AndroidManifest.xml"); return ctx; }
public override void OnModifyAndroidProjectFiles(AndroidProjectFiles projectFiles) { var customGradleFile = new ModuleBuildGradleFile(); customGradleFile.Android.DefaultConfig.MinSdk.Set(28); projectFiles.SetBuildGradleFile("mycustommodule/build.gradle", customGradleFile);
var customManifestFile = new AndroidManifestFile(); customManifestFile.Manifest.Application.AddActivity("MyCustomActivity"); ; projectFiles.SetManifestFile("mycustommodule/src/main/AndroidManifest.xml", customManifestFile); } }
callbackOrder | 当存在多个 AndroidProjectFilesModifier 实现时,回调顺序。 |
OnModifyAndroidProjectFiles | Unity 编辑器创建 Android Gradle 项目后,修改其中文件的回调。 |
Setup | 设置修改自定义 Android Gradle 项目文件先决条件的回调。 |