做網(wǎng)站界面一般用什么來做廣告公司取名字參考大全
最近在開發(fā)中需要測試以前寫的小項目。結(jié)果忘了換本地的gradle,提示下載失敗。換了現(xiàn)在用的gradle,項目能跑了。雖然網(wǎng)上有很多很多教程了,但對我的情況也不是都適用。所以自己記錄一下。本人水平有限,有不對的地方請幫我指正,萬分感謝。
如果您很著急,請直接看目錄挑選重要部分看。
前言
離線導(dǎo)入的方式(沒有使用本地gradle或不修改默認(rèn)倉庫位置的前提下)適合本地項目和修改別人的項目。不太推薦含有g(shù)it并且要推給別人使用,這個推薦用鏡像。至于為什么,因為別人和您的路徑不同。當(dāng)您看完本篇文章就知曉了。同時也希望您看完了再開始配置,根據(jù)需要選擇合適的方式。當(dāng)您看完以后應(yīng)該知曉了下載慢或失敗的原因,也可舉一反三,在充分備份的情況下自行配置。
直接打開的效果
如果打開的項目與自己本地倉庫里的gradle版本不一致,哪怕是個小版本號不同都會自動下載該項目的gradle。
以前是可以直接下載的,只是很慢。隨著版本更新,就無法再連接到官方倉庫下載了。這里顯示連接超時了,有時候會顯示下載失敗。
離線導(dǎo)入
要離線導(dǎo)入,我們要知道gradle在我們項目中的作用。它就是導(dǎo)入依賴的,和Maven類似吧,這是我的理解。那么是導(dǎo)入依賴的工具,必然會有一個存儲依賴的本地倉庫,不然的話每次下載到項目里,然后每開一個項目就下載一次?這種蠢事可能也只有我以前還覺得是合理的哈哈。
本地倉庫
當(dāng)你下載Androidstudio,配置好了以后,新建一個項目,就必然會有一個當(dāng)時比較新的gradle下載到了你的本地倉庫。而在安裝的時候也沒見到哪兒設(shè)置啊,也沒說在哪啊。
這時候你打開你的資源管理器,打開C盤,找到你自己用的賬戶,進(jìn)去點開.gradle文件,這就是默認(rèn)的本地倉庫了。
到這里還是沒有看到自己用的gradle在哪。那點擊wrapper,里面有一個dists文件夾,再點進(jìn)去就能看到了帶gradle版本的gradle-x.xx-bin(也有可能這個是all)的文件夾。如果好奇,可以再點進(jìn)去看看,這里不多寫了。
沒錯,本地的倉庫是在C盤,如果您不在意,可以不用改,甚至不用看完本篇文章。因為只需要將離線的gradle的壓縮包放到dists下面就行了。
更換本地倉庫位置(非必要)
本來我的存儲空間就很緊張了,更何況是C盤空間呢,果斷選擇換倉庫的位置。
首先在你覺得合理的位置下面新建一個文件夾(前提是整個路徑不要有中文,磁盤名字不用擔(dān)心,這個只看盤符的),其實名字不一定要寫成.gradle一樣,這是我的倉庫新路徑D:\Gradle\gradle-repository。然后將原來的倉庫內(nèi)容直接粘貼復(fù)制過去,切記不要刪除了,否則新倉庫配置失敗,舊倉庫也不能用了就得不償失了。
接下來就是修改環(huán)境變量了。新加一個環(huán)境變量,名字為GRADLE_USER_HOME,值為新倉庫的路徑。有了這個環(huán)境變量Android studio才會用新的倉庫。
這時候我們可以重新打開Androidstudio,點擊File->settings->Build,Exxxx,Dxxxx->Build Tools->Gradle
GradleUserHome位置應(yīng)該就是現(xiàn)在新倉庫的位置了。
使用離線gradle
到現(xiàn)在我們開始正式配置離線gradle內(nèi)容了。
首先,我們要去下載項目需要使用的gradle。當(dāng)然,其實完全可以使用已經(jīng)有的gradle,但畢竟我要記錄的是離線加載嘛,所以我將這個方法寫在后面。
首先把視圖放在project下,側(cè)邊欄有個Project,這一欄的最上邊一般是顯示的Android視圖級別,但是在項目進(jìn)行g(shù)radle下載完成或失敗之前會一直顯示加載,看不到任何內(nèi)容。所以直接換到project級別下,打開gradle文件夾,下面有一個配置文件gradle-wrapper.properties。里面的內(nèi)容就是gradle下載的一些信息。
distributionBase:指向倉庫地址
distributionPath:相對于distributionBase的解壓后的Gradle的路徑
zipStoreBase:指向倉庫地址,但是這里放的是壓縮包文件
zipStorePath:同distributionPath,這也是放的是壓縮包文件
distributionUrl:Gradle發(fā)行版壓縮包的下載地址,如果用離線,改成我們的gradle地址
這就是項目用的gradle版本,我這個項目以前用的是7.0.2。如果我不改的話,把版本換成現(xiàn)在使用的版本,-bin,也有可能現(xiàn)在用的是-all(很少),如果不一致也要一起改。改完以后還要改gradlePlug版本,這個相當(dāng)于是插件,和gradle是兩個東西,前者是Google的,后者是gradle公司的。這里只是提一嘴。現(xiàn)在主要還是說離線的。
根據(jù)版本去找離線包,以前阿里云好像可以下載,現(xiàn)在不知道。這里給一個鏡像網(wǎng)址:gradle鏡像:https://mirrors.cloud.tencent.com/gradle/
里面有很多版本,我們主要找后綴 版本號-bin.zip的文件。這里我們可以看到7.0有很多版本和不同的命名。
這里淺淺的說一下吧:-rc是屬于終版前的一個版本,不是最終版,但是如果-rc版本沒有什么大問題,就會成為終版發(fā)布上線。軟件的話一般還有一個-Bate版本,表示公測版本。-bin是這個已編譯文件,能夠直接運(yùn)用在項目中,不需要我們再編譯;-all不僅有-bin的所用東西,還有源碼文檔;-src是源碼,不能夠直接運(yùn)行在項目中。當(dāng)然這個是gradle的,不過大多公司對軟件的命名也大差不差的。
下載以后得到一個壓縮包。至于放在哪,這個不用直接放在倉庫,之前我的倉庫還有一個父目錄,Gradle的文件夾,放在它的下面。
然后我們回到Androidstudio,打開gradle-wrapper.properties配置文件,修改distributionUrl的值,讓他不去網(wǎng)絡(luò)上的倉庫去下載 (這里其實我們已經(jīng)知道了為什么導(dǎo)入其它項目真正慢是因為無法通過這個地址去下載到我們需要的gradle,那么是不是改為鏡像下載地址是不是會好很多呢。答案是肯定的,這里主要是離線的方法,后面會介紹) ,而是通過我們指定的位置去下載解壓。我的建議是不要直接去刪除,而是屏蔽掉,防止出問題以后沒有辦法復(fù)原。下面是我的配置。
distributionBase=GRADLE_USER_HOME
distributionUrl=file:///D:/Gradle/gradle-7.0.2-bin.zip
#distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
檢查無誤后,點擊同步。
接著它會去下載其它依賴。到這里基本上就成了。當(dāng)然,可能會出現(xiàn)一個叫你的主機(jī)中的軟件中止了一個已建立的連接。 錯誤,這個一般是端口被占用了,如果是筆記本看下是不是用電腦開了移動熱點,關(guān)掉就好了,如果是其它程序占用(一般不是),關(guān)閉就好了,如果是adb占用,暫時退出就好了。
依賴鏡像(非必要)
等待依賴下載完成,這個項目就能跑了。如果不想再折騰的就不用看下面的了。
不過有些依賴下載的挺慢的,甚至?xí)?。對于單個項目,我們可以單獨配置一下。如果要全局配置,就需要項目用到自己的本地Gradle環(huán)境,這個在下面一節(jié)會說。
點開build.gradle。這個是整個項目的。還有一個是在app下面的。如果在Android視圖級別下,兩個會在同一列表,但是后面會有一個冒號,:app表示app下的,:項目名表示整個項目的。我們要更改的就是整個項目下面的。
添加鏡像地址
mavenLocal() //配置先從本地倉庫尋找jar包,優(yōu)先尋找上一個配置,找到不執(zhí)行下面的配置
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/central' }
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
mavenCentral()
為什么多了一個allprojects呢,而且和上面的有相同的結(jié)構(gòu)。buildscript 塊只適用于該 Gradle 構(gòu)建文件中,而 allprojects 塊適用于所有項目和模塊??梢愿鶕?jù)需要添加
這里就配置好了依賴鏡像,它會有限去找我們本地的jar包,沒有再去鏡像找,依次往下。當(dāng)然jar包也是可以離線導(dǎo)入的,這個比較簡單,這里就不介紹了。
附上一個阿里云鏡像配置方式
既然依賴可以用鏡像,阿里云,騰訊云還有其它鏡像網(wǎng)站也有g(shù)radle的鏡像,打開項目會去找
配置整個Gradle環(huán)境并應(yīng)用在項目中(非必要)
解壓我們之前下載的gradle離線包,但是壓縮包不要刪除!!這時候我們還需要去配置一下環(huán)境變量。新建一個名字GRADLE_HOME的變量,值為解壓的目錄。
然后點開path,如果條目多的話可以直接雙擊打開的。
點擊新建,然后輸入%GRADLE_HOME%\bin,點擊確定,確定,確定。
這時候我們用命令窗口(WIN+R輸入cmd),輸入gradle -v。出現(xiàn)正確的版本,和信息表示本地gradle配置成功了。注意這是gradle在本地使用,可以通過命令使用了,而不是說在Androidstudio中能用了。
這時候我們打開Android studio。點擊File->settings->Build,Exxxx,Dxxxx->Build Tools->Gradle->GradleProjects。修改UseGradlefrom,改為Specifiledlocation,讓我們自己指定gradle,選擇我們已經(jīng)安裝的gradle。然后點擊apply或者ok應(yīng)用。
第一個選項很容易理解,就是從配置文件中選擇。
為了演示這里將所有配置還原了,然后刪掉了本地倉庫的gradle
可以看到?jīng)]有經(jīng)過配置文件去加載,而是直接運(yùn)行了。
使用已有的gradle和鏡像導(dǎo)入
鏡像導(dǎo)入
這個比較簡單所以放在前面,其主要通過修改distributionUrl來實現(xiàn)。
在前面下載離線gradle的時候用了一個鏡像地址,這是騰訊的,將地址改為https://mirrors.cloud.tencent.com/gradle/gradle-x.x.x-x.zip。
常用的是阿里云的鏡像:https://mirrors.aliyun.com/gradle/gradle-x.x.x-x.zip
當(dāng)然無論是阿里云的鏡像地址,還是騰訊的,都要保證鏡像倉庫下有你要的文件(一般都有)。
使用已有的gradle
當(dāng)我們不想要去下載新的gradle,并且在不影響項目的情況下,我們可以直接用已經(jīng)有的版本。
首先我們還是要更改distributionUrl的內(nèi)容,但這次不用修改前面了,網(wǎng)絡(luò)地址了,而是修改gradle版本號。比如我現(xiàn)有的gradle是8.0-bin,而這個項目用的是7.0.2-bin,那么我直接修改版本號就行了。因為這個版本我們是有的,所以他不會進(jìn)行下載的。
到這里看起來好像一切ok。但我們點擊File->Project Structure->Project??梢钥吹?#xff0c;下面GradleVersion是gradle版本,而上面那個gradlePluginVersion則是插件的版本。他們是有對應(yīng)關(guān)系的。當(dāng)你更換了gradle版本以后,也應(yīng)該更改插件的版本。
以我為例,我現(xiàn)在更換了8.0,那么插件版本該是多少呢,這個就要查詢官方給的資料了。Android Gradle 插件版本說明 網(wǎng)址:https://developer.android.google.cn/studio/releases/gradle-plugin?hl=zh-cn#updating-gradle
可以看到我需要更新到至少8.0的插件版本。官方的資料里面還有一個關(guān)于Androistudio版本的限制。這個我并未驗證,使用無法進(jìn)行說明。
當(dāng)一切完成以后,這個項目按道理說也能跑了。因為Android版本及其對應(yīng)API級別不同而帶來的錯誤這里就不說了,這個解決很簡單的,網(wǎng)上資料也多。
結(jié)尾
我也十分猶豫的寫下這篇筆記。一來是網(wǎng)上已經(jīng)有很多大神出了教程,我真的有必要再寫一篇嗎。二來是自己不過半只腳踏入門的半吊子,真的有資格去寫這些嗎,說不定還會誤導(dǎo)他人。于是在寫下第一篇筆記后,就不敢再怎么寫了。但是近期問題太多了,有時候一回想,這不就是之前遇到過的嗎,雖然記得,但是完全忘了怎么操作(經(jīng)驗不夠),還要重新開始搜索資料。效率是比剛開始遇到的時候快,但加在一起還是浪費了很多時間。為了防止踩過的坑再踩一次,我還是鼓起勇氣寫下了這篇筆記并分享給大家。如果這篇筆記對你有幫助,那就太好了,最后感謝您的觀看。