Unity有一个默认的gradle.properties文件,该文件在构建过程中添加。虽然可以更改build.gradle和这里提到的settings.gradle文件https://docs.unity3d.com/Manual/android-gradle-overview.html,但没有提到能够在统一文档中更改gradle.properties。该文件也会在每次构建尝试时重新创建,因此在构建和再次构建之后在temp / gradleOut中编辑它不起作用。我知道导出项目也是可能的,但我正在寻找一个解决方案,项目可以直接从统一运行。
顺便问这个问题不是这个问题的重复How to use Gradle in Unity这里的答案与修改gradle.properties文件无关。
这是这个问题的副本,被错误地标记为重复的how to change default gradle.properties of Unity?
这有点难以发现。我打算做一个像我的iOS构建一样的常规后期构建处理器,但是当我正在寻找加载和确定属性文件位置的方式时,我在文档中运行了以下界面:IPostGenerateGradleAndroidProject
。
生成此接口以在生成Android Gradle项目后接收回调。
所以下面是我开启androidX和jetifier的最初暴力实施。
public class AndroidPostBuildProcessor : IPostGenerateGradleAndroidProject
{
public int callbackOrder
{
get
{
return 999;
}
}
void IPostGenerateGradleAndroidProject.OnPostGenerateGradleAndroidProject(string path)
{
Debug.Log("Bulid path : " + path);
string gradlePropertiesFile = path + "/gradle.properties";
if (File.Exists(gradlePropertiesFile))
{
File.Delete(gradlePropertiesFile);
}
StreamWriter writer = File.CreateText(gradlePropertiesFile);
writer.WriteLine("org.gradle.jvmargs=-Xmx4096M");
writer.WriteLine("android.useAndroidX=true");
writer.WriteLine("android.enableJetifier=true");
writer.Flush();
writer.Close();
}
}
从理论上讲,您应该能够在后期构建处理器中以任何方式操作生成的gradle项目。一些额外的工具可能会有所帮助,比如iOS上的PBXProject支持,但在此之前,这样做。