有没有办法在Unity中更改gradle.properties文件

问题描述 投票:3回答:2

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?

android unity3d gradle
2个回答
1
投票

这有点难以发现。我打算做一个像我的iOS构建一样的常规后期构建处理器,但是当我正在寻找加载和确定属性文件位置的方式时,我在文档中运行了以下界面:IPostGenerateGradleAndroidProject

根据documentation

生成此接口以在生成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支持,但在此之前,这样做。


0
投票

虽然这不是一个完美的解决方案,但您可以使用“导出项目”选项。

Build Settings

导出项目后,您可以修改gradle.properties并使用AndroidStudio或命令行进行构建。

© www.soinside.com 2019 - 2024. All rights reserved.