万事开头难,刚开始学习Unity Android方面的知识就开始翻车,难受。
这里使用的版本是:Unity2018.4.30f Android Stdio 3.62 Gradle5.1.1
问题
Unity Build Android 时总在Building Gradle Project卡住。
中间遇到网络波动等,还会立刻失败。
解决方法
折腾了将近一天。在https://github.com/googlesamples/unity-jar-resolver/issues/63中得到了答案。
方法1:删掉.gradle/daemon文件夹。
在gradle/gradle#1747有所提及。
我使用了该方法,删掉了C:\Users\Administrator.gradle\daemon文件夹。
神奇的事情发生了,几十秒就Build成功。
方法2:在Unity的gradle.properties则可以通过IPostGenerateGradleAndroidProject接口进行修改。
github中提到了–no-daemon。
在参照了unity3d修改gradle.propertiest, 禁用Gradle Daemon后,得到了如下方法。
在Unity中添加如下脚本。
using UnityEngine;
using System.Collections.Generic;
using System.IO;
#if UNITY_EDITOR
using UnityEditor.Android;
public class AndroidPostBuildProcessor : IPostGenerateGradleAndroidProject
{
public int callbackOrder
{
get
{
return 999;
}
}
void IPostGenerateGradleAndroidProject.OnPostGenerateGradleAndroidProject(string path)
{
Debug.Log("Bulid path : " + path);
//读取gradle.properties中的内容
string gradlePropertiesFile = path + "/gradle.properties";
List<string> properties = new List<string>(File.ReadAllLines(gradlePropertiesFile));
//添加 no daemon设置
properties.Add("org.gradle.daemon=false");
File.WriteAllLines(gradlePropertiesFile,properties);
}
}
#endif
注:
因为在我的电脑上使用第一种方法后,立刻流畅了起来。
在此基础上干掉守护进程后,只是感觉上快了一些。
至于第二种方法究竟有没有效果,有这种问题的可以试一下。