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?
也许我的答案有点过时,但在 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)
还有截图:
这是很难发现的东西。我打算做一个常规后生成处理器就像我有我的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)
| 归档时间: |
|
| 查看次数: |
3304 次 |
| 最近记录: |