美文网首页
关于Unity2019无法构建安卓的解决办法

关于Unity2019无法构建安卓的解决办法

作者: iqxtreme | 来源:发表于2019-06-12 14:38 被阅读0次

(若使用unity2019.3.x以后的版本,可直接看最后的附录)

关键词

安卓 android unity 2019 gradle 失败

问题背景

unity2019自带了构建安卓包的一切工具,可谓是非常方便(估计国外是这样),但这个构建过程(即gradle)需要临时从国外网上抓取一些资源,当这些资源抓不来的时候,整个构建过程会卡很长时间并以失败告终(错误信息会告诉你哪些资源没搞到)

解决方案 A

由于需要的资源国内是有镜像的,所以解决这个问题只需要将国内镜像添加到构建过程中即可。

具体实施

将2019自带的安卓构建工具安装好后,可以找到类似如下目录:

Unity/Hub/Editor/2019.2.0b1/PlaybackEngines/AndroidPlayer/Tools/GradleTemplates

主要是找到GradleTemplates这个目录(里面的文件就是Unity采用Gradle构建安卓包时采用的模版文件,这些文件中表达了资源从哪里获取)。
由于2019.1到2019.3在这个目录中组织文件到方式有些差异,所以这里没有统一的改法,但只需要遵循一条原则即可:

只要这个目录中的文件中含有repositories,就替换这个区块中的google()及jcenter()为
maven{ url 'https://maven.aliyun.com/repository/google'},maven{ url 'https://maven.aliyun.com/repository/jcenter'}
这就是国内镜像,构建时,会优先从这里获取资源。
大概像下面的样子:

    repositories {**ARTIFACTORYREPOSITORY**
        maven{ url 'https://maven.aliyun.com/repository/google'}
        //google()
        maven{ url 'https://maven.aliyun.com/repository/jcenter'}
        //jcenter()
    }

注意:一定把那个目录中所有文件相关的地方都插上那个镜像。

附加:阿里云镜像站https://developer.aliyun.com/mirror/

阿里云maven镜像

解决方案 B

具体实施

  • 勾选ProjtectSetting->Player->Publishing Settings->Build->Custom Template
ProjtectSetting->Player Player->Publishing Settings->Build->Custom Template
  • 根据提示会得到一个gradle配置文件位于Assets/Plugins/Android/mainTemplate.gradle,将此文件中的repositories都按解决方案A修改即可。

附录 2019.3.x修改方案

找到PlaybackEngines/AndroidPlayer/Tools/GradleTemplates/baseProjectTemplate.gradle,修改其内容如下:

// GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN

allprojects {
    buildscript {
        repositories {**ARTIFACTORYREPOSITORY**
            maven{ url 'https://maven.aliyun.com/repository/google'}
            //google()
            maven{ url 'https://maven.aliyun.com/repository/jcenter'}
            //jcenter()
        }

        dependencies {
            // If you are changing the Android Gradle Plugin version, make sure it is compatible with the Gradle version preinstalled with Unity
            // See which Gradle version is preinstalled with Unity here https://docs.unity3d.com/Manual/android-gradle-overview.html
            // See official Gradle and Android Gradle Plugin compatibility table here https://developer.android.com/studio/releases/gradle-plugin#updating-gradle
            // To specify a custom Gradle version in Unity, go do "Preferences > External Tools", uncheck "Gradle Installed with Unity (recommended)" and specify a path to a custom Gradle version
            classpath 'com.android.tools.build:gradle:3.4.0'
            **BUILD_SCRIPT_DEPS**
        }
    }

    repositories {**ARTIFACTORYREPOSITORY**
            maven{ url 'https://maven.aliyun.com/repository/google'}
            //google()
            maven{ url 'https://maven.aliyun.com/repository/jcenter'}
            //jcenter()
        flatDir {
            dirs "${project(':unityLibrary').projectDir}/libs"
        }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

相关文章

网友评论

      本文标题:关于Unity2019无法构建安卓的解决办法

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