美文网首页
Unity Gradle出包过程中遇到的问题

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

作者: 凌晨还梦 | 来源:发表于2019-10-16 13:55 被阅读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

    相关文章

      网友评论

          本文标题:Unity Gradle出包过程中遇到的问题

          本文链接:https://www.haomeiwen.com/subject/kdkemctx.html