關(guān)于Unity2019無法構(gòu)建安卓的解決辦法

(若使用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/

阿里云maven鏡像

解決方案 B

具體實(shí)施

  • 勾選ProjtectSetting->Player->Publishing Settings->Build->Custom Template
ProjtectSetting->Player
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
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容