Unity Gradle出包过程中遇到的问题

2019-10-16  本文已影响0人  凌晨还梦

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 version

2.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

上一篇 下一篇

猜你喜欢

热点阅读