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