1.Gradle version 出錯
? ? ? 出包過程中,出現(xiàn)以下錯誤
? ? ? ?原因:我在mainTemplate中設(shè)置Android Plugin Version是3.4.0,所以出包選擇的對應(yīng)gradle版本最低是5.1.1。如果在Android Studio可以選擇進(jìn)修改gradle-wrapper.properties來選擇gradle對應(yīng)的版本,但是unity中沒法設(shè)置。而出現(xiàn)Current verison 的原因是我當(dāng)前Unity的版本是2017.4.32,而在這個版本里,Unity里集成的Gradle Version是4.6,可以從(Untiy安裝路徑\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib )中看出當(dāng)前Unity集成的gradle是哪個版本,如下圖
? ? ? ?所以我的解決方案是將Unity2018.4.4的gradle\lib 覆蓋到了2017.4.32上,問題就可以解決了。
? ? ? ?附上其他Unity版本集成的Gradle版本:
2.Execution failed for task ':checkReleaseDuplicateClasses'
? ? ?Duplicate class android.support.v4.app.INotificationSideChannel found in modules classes?錯誤
? ? ? 如果是android studio可以直接在gradle.properties中添加如下代碼:
? ? ? ? ? ? ? ? ? ?android.useAndroidX=true
? ? ? ? ? ? ? ? ? ?android.enableJetifier=true
? ? ? ?但是我用的是unity,而且也不想導(dǎo)出android 工程再用unity出包,所以我在mainTemplate中添加了以下內(nèi)容(要在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