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

Chr*_*Out 6 android unity-game-engine gradle

Unity具有在构建过程中添加的默认gradle.properties文件。尽管可以按照此处https://docs.unity3d.com/Manual/android-gradle-overview.html所述更改build.gradle和settings.gradle文件, 但没有提及能够更改gradle.properties统一文档。该文件还会在每次构建尝试时都重新创建,因此在构建后再在temp / gradleOut中对其进行编辑并无法正常工作。我知道也可以导出项目,但是我正在寻找一种解决方案,可以直接从整体运行项目。

顺便说一句,这个问题不是这个问题的重复。如何在Unity中使用Gradle 答案与修改gradle.properties文件无关。

这是此问题的重复项,被错误地标记为重复项,该重复项如何更改Unity的默认gradle.properties?

Ser*_*kar 9

也许我的答案有点过时,但在 Unity 2020 中,您可以这样做:

Player Settings -> Tab Android (with robot obviously) -> Publishing Settings -> Custom Gradle Properties Template (checkbox).

启用该复选框后,您将看到gradleTemplate.properties(通常出现在 Assets/Plugins/Android 目录中)文件的路径,该文件将与final gradle.properties.

您需要的所有内容都可以在**ADDITIONAL_PROPERTIES**字符串后写入文件末尾。

例子:

org.gradle.jvmargs=-Xmx**JVM_HEAP_SIZE**M
org.gradle.parallel=true
android.enableR8=**MINIFY_WITH_R_EIGHT**
**ADDITIONAL_PROPERTIES**

android.useAndroidX = true // I added this property to fix error:  This project uses AndroidX dependencies, but the 'android.useAndroidX' property is not enabled. Set this property to true in the gradle.properties file and retry.
Run Code Online (Sandbox Code Playgroud)

还有截图:

如何在 Unity 中修改 gradle.properties 文件

  • 我想知道 OP 是否愿意将此检查为解决方案并为许多人节省太多时间 (2认同)

JDL*_*JDL 5

这是很难发现的东西。我打算做一个常规后生成处理器就像我有我的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();

    }
}
Run Code Online (Sandbox Code Playgroud)

从理论上讲,您应该能够在后期构建处理器中以任何方式操纵生成的gradle项目。某些其他工具可能会有所帮助,例如iOS上的PBXProject支持,但是直到那时,这样做仍然可以。


小智 5

IPostGenerateGradleAndroidProject 是 Unity2018 之后新增的接口。

作为我基于Unity2017的项目,这不是一个好的解决方案。然后我找到了这个。Gradle 的解决方案。

([rootProject] + (rootProject.subprojects as List)).each {
    ext {
        it.setProperty("android.useAndroidX", true)
        it.setProperty("android.enableJetifier", true)
    }
}
Run Code Online (Sandbox Code Playgroud)


Hee*_*Kim 0

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

构建设置

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