1.Gradle version 出错
出包过程中,出现以下错误
原因:我在mainTemplate中设置Android Plugin Version是3.4.0,所以出包选择的对应gradle版本最低是5.1.1。如果在Android Studio可以选择进修改gradle-wrapper.properties来选择gradle对应的版本,但是unity中没法设置。而出现Current verison 的原因是我当前Unity的版本是2017.4.32,而在这个版本里,Unity里集成的Gradle Version是4.6,可以从(Untiy安装路径\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib )中看出当前Unity集成的gradle是哪个版本,如下图
Unity2017.4.32对应的Gradle Unity2018.4.4对应的Gradle所以我的解决方案是将Unity2018.4.4的gradle\lib 覆盖到了2017.4.32上,问题就可以解决了。
附上其他Unity版本集成的Gradle版本:
部分unity版本对应的gradle version2.Execution failed for task ':checkReleaseDuplicateClasses'
Duplicate class android.support.v4.app.INotificationSideChannel found in modules classes?错误
出错log如果是android studio可以直接在gradle.properties中添加如下代码:
android.useAndroidX=true
android.enableJetifier=true
但是我用的是unity,而且也不想导出android 工程再用unity出包,所以我在mainTemplate中添加了以下内容(要在apply plugin之上):
([rootProject] + (rootProject.subprojects as List)).each {
ext {it.setProperty("android.useAndroidX", true)
it.setProperty("android.enableJetifier", true)
}
}
如果是2018 ,可以添加IPostGenerateGradleAndroidProject接口来修改gradle.properties文件,代码如下
public class AndroidPostBuildProcessor : IPostGenerateGradleAndroidProject
{
void IPostGenerateGradleAndroidProject.OnPostGenerateGradleAndroidProject(string 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();
}
}
参考:https://stackoverflow.com/questions/54186051/is-there-a-way-to-change-the-gradle-properties-file-in-unity
网友评论