(若使用unity2019.3.x以后的版本,可直接看最后的附錄)
關(guān)鍵詞
安卓 android unity 2019 gradle 失敗
問題背景
unity2019自帶了構(gòu)建安卓包的一切工具,可謂是非常方便(估計(jì)國(guó)外是這樣),但這個(gè)構(gòu)建過程(即gradle)需要臨時(shí)從國(guó)外網(wǎng)上抓取一些資源,當(dāng)這些資源抓不來的時(shí)候,整個(gè)構(gòu)建過程會(huì)卡很長(zhǎng)時(shí)間并以失敗告終(錯(cuò)誤信息會(huì)告訴你哪些資源沒搞到)
解決方案 A
由于需要的資源國(guó)內(nèi)是有鏡像的,所以解決這個(gè)問題只需要將國(guó)內(nèi)鏡像添加到構(gòu)建過程中即可。
具體實(shí)施
將2019自帶的安卓構(gòu)建工具安裝好后,可以找到類似如下目錄:
Unity/Hub/Editor/2019.2.0b1/PlaybackEngines/AndroidPlayer/Tools/GradleTemplates
主要是找到GradleTemplates這個(gè)目錄(里面的文件就是Unity采用Gradle構(gòu)建安卓包時(shí)采用的模版文件,這些文件中表達(dá)了資源從哪里獲取)。
由于2019.1到2019.3在這個(gè)目錄中組織文件到方式有些差異,所以這里沒有統(tǒng)一的改法,但只需要遵循一條原則即可:
只要這個(gè)目錄中的文件中含有repositories,就替換這個(gè)區(qū)塊中的google()及jcenter()為
maven{ url 'https://maven.aliyun.com/repository/google'},maven{ url 'https://maven.aliyun.com/repository/jcenter'}
這就是國(guó)內(nèi)鏡像,構(gòu)建時(shí),會(huì)優(yōu)先從這里獲取資源。
大概像下面的樣子:
repositories {**ARTIFACTORYREPOSITORY**
maven{ url 'https://maven.aliyun.com/repository/google'}
//google()
maven{ url 'https://maven.aliyun.com/repository/jcenter'}
//jcenter()
}
注意:一定把那個(gè)目錄中所有文件相關(guān)的地方都插上那個(gè)鏡像。
附加:阿里云鏡像站https://developer.aliyun.com/mirror/

解決方案 B
具體實(shí)施
- 勾選ProjtectSetting->Player->Publishing Settings->Build->Custom Template


- 根據(jù)提示會(huì)得到一個(gè)gradle配置文件位于Assets/Plugins/Android/mainTemplate.gradle,將此文件中的repositories都按解決方案A修改即可。
附錄 2019.3.x修改方案
找到PlaybackEngines/AndroidPlayer/Tools/GradleTemplates/baseProjectTemplate.gradle,修改其內(nèi)容如下:
// 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
}