在使用Android Studio或者從2.1版本升級(jí)到2.3版本的時(shí)候埃撵,常常會(huì)出現(xiàn)gradle project refresh failed這種情況罕扎,這時(shí)我的第一反應(yīng)就是搞事情啊,這是在搞事情啊杜窄。吃飯的工具用不了這是要讓我喝西北風(fēng)把砗摹?腦子里突然浮現(xiàn)一個(gè)畫面冀续,在項(xiàng)目組的群里琼讽,老大前一天晚上說:“明天早上在會(huì)議室開會(huì)必峰,大家?guī)铣燥埖募一铩钻蹬!蔽倚南耄骸斑@大早上就要給我們發(fā)福利吼蚁?”于是乎,在第二天早上我就拿著一副碗筷问欠,拎著兩瓶啤酒樂呵呵的走進(jìn)了會(huì)議室肝匆,看到大家都帶著電腦在開會(huì),我心里無數(shù)個(gè)C N M飄過啊顺献。瞬間一萬點(diǎn)暴擊旗国,K.O了,當(dāng)時(shí)看見我們老大的臉都綠了注整。哎~~~
下面接著上邊的話題聊一下能曾,遇到gradle project refresh failed的情況,我就打開了百度頁面肿轨,心想:“這不算什么的寿冕,萬能的百度都能幫我搞定的,畢竟這種坑肯定我不是一個(gè)踩到的椒袍⊥粘”果然當(dāng)我在搜索欄輸入這個(gè)錯(cuò)誤點(diǎn)擊回車后,下面出現(xiàn)了很多的解決方式驹暑,我高興的點(diǎn)開一個(gè)就照著上邊的解決方案操作起來玫恳,等了一會(huì)(公司電腦配置不行,gradle要好一會(huì))优俘,我擦gradle project refresh failed京办。沒事沒事,我安慰著自己兼吓,也許這次姿勢(shì)不對(duì)臂港,我又找了一個(gè)方法照著操作,還是gradle project refresh failed。就這樣連續(xù)操作幾個(gè)方法之后审孽,我覺得這不是姿勢(shì)的問題了县袱,這是五行不和啊。
突然想起來一個(gè)好哥們說的一句話佑力,遇到問題不能抱著試一試的心態(tài)去解決式散,需要知道問題為什么出現(xiàn),之后再去考慮一下出現(xiàn)問題可能的解決方式打颤,之后分析最靠譜的解決方式(直中要害)暴拄。這時(shí)我扔下手中的鼠標(biāo)和鍵盤,坐在那盯著屏幕想:“gradle的依賴方式有兩種编饺,一種是Maven乖篷,另一種是compile依賴。不管是哪種依賴方式透且,Android Studio公開的或者說托管的三方庫(kù)(也就是說在項(xiàng)目中compile 'com.squareup.retrofit2:retrofit:2.2.0'這句代碼是要去Maven Center或者Jcenter文件服務(wù)器中去下載庫(kù)文件以實(shí)現(xiàn)本項(xiàng)目依賴這個(gè)庫(kù))撕蔼,我一想創(chuàng)建項(xiàng)目的時(shí)候要去文件服務(wù)器上下載庫(kù)文件,那是不是這里出現(xiàn)的問題呢秽誊?又關(guān)聯(lián)想到了在不久前公司設(shè)置了代理服務(wù)器(屏蔽了好多個(gè)網(wǎng)站鲸沮,有些人可能會(huì)說直接把代理關(guān)了就行了啊,可以說這個(gè)辦法在我們公司是行不通的锅论,因?yàn)榇砣∠四悄惆俣鹊馁Y格都沒有了)讼溺。”于是乎我就想了一個(gè)辦法最易,既然設(shè)置了代理就不能從文件服務(wù)器上下載到庫(kù)文件導(dǎo)致編譯失敗怒坯,那好吧,那我下載下來所需庫(kù)文件之后放到Android Studio的緩存庫(kù)中(就在C:\Users\{你的用戶名}\.gradle\caches\modules-2\files-2.1)就應(yīng)該可以了耘纱,我就借了一個(gè)筆記本過來連接了公司的另一個(gè)網(wǎng)絡(luò)(公司兩個(gè)網(wǎng)絡(luò)一個(gè)是設(shè)置了代理的敬肚,一個(gè)是直接訪問外網(wǎng)的,有人又會(huì)問你不是說不能直接訪問外網(wǎng)嗎束析?對(duì)的我是不能直接訪問外網(wǎng)的艳馒,只有公司的領(lǐng)導(dǎo)才可以,我是借了他的筆記本電腦使用他的憑證才能上網(wǎng)的)员寇,之后我瘋狂地從文件服務(wù)器上下載著庫(kù)文件弄慰,高興地講下載下來的庫(kù)文件放在緩存庫(kù)中,重啟Android Studio蝶锋,看著它在構(gòu)建陆爽,蹦的從下邊彈出構(gòu)建結(jié)果還是gradle project refresh failed。
即使這樣我還是繼續(xù)分析解決這種問題的解決方式:“既然是因?yàn)椴荒軓奈募?wù)器上下載所需庫(kù)文件扳缕,那索性直面問題不要借助其他的方式解決會(huì)不會(huì)好很多呢慌闭?”于是我就找到Android Studio是可以設(shè)置代理的Settings--Appearance & Behavior--Systems Settings--Http Proxy中默認(rèn)選擇的是No Proxy别威,往下來就看到了Manual proxy configuration(手動(dòng)設(shè)置代理)選擇Http,在下邊填寫Host name和Port number(這些信息要根據(jù)公司的代理去選擇和設(shè)置)驴剔,這時(shí)我又樂呵呵的點(diǎn)擊了確定之后趕緊重新構(gòu)建一下省古,噗噗噗還是gradle project refresh failed。之前沒有設(shè)置代理的時(shí)候出現(xiàn)這個(gè)問題可以理解丧失,現(xiàn)在代理我也設(shè)置了豺妓,為何還會(huì)是這種情況呢?我繼續(xù)找~找~找找啊找啊找朋友布讹,找到一個(gè)好朋友琳拭,敬個(gè)禮啊,握握手描验,你是我的好朋友白嘁。突然我想到為什么筆記本可以直接訪問外網(wǎng)呢?認(rèn)證(有賬號(hào)和密碼 這個(gè)可以和老大去要)挠乳,于是乎我就再次打開了Settings--Appearance & Behavior--Systems Settings--Http Proxy权薯,選擇了Proxy authentication并且填寫上賬號(hào)和密碼,之后保存設(shè)置重新構(gòu)建睡扬,沒有報(bào)錯(cuò)居然成功了。
曾經(jīng)黍析,有一個(gè)可以不入坑的方式放在我面前卖怜,我沒有去珍惜,如果上天再給我一次機(jī)會(huì)的話阐枣,我愿對(duì)它說九個(gè)字:“別T M D讓我入坑了”马靠。
下面也介紹一下通過這次踩坑的經(jīng)歷所了解到的填坑的方式:
不同的情況會(huì)有不同的解決方法,需要打開日志文件找到詳細(xì)錯(cuò)誤信息蔼两。
C:\Users\{Username}\.AndroidStudio2.1\system\log
1. 強(qiáng)制IPV4
在環(huán)境變量中增加變量
_JAVA_OPTIONS
設(shè)置變量值為甩鳄,
-Djava.net.preferIPv4Stack=true
重啟Android Studio,自動(dòng)更新gradle额划。
2.更新JDK1.7到JDK1.8
File->Other Settings->Default Project Structure...
3.刪除.gradle文件
刪除文件夾
c:\users\{username}\.gradle
然后重啟Android Studiao妙啃,更新gradle。
4.修改gradle.properties配置
打開工程的gradle.properties文件俊戳,添加如下配置項(xiàng):
org.gradle.jvmargs=-Xmx512m -XX:MaxPermSize=512m
這個(gè)是解決虛擬內(nèi)存不夠引起的問題揖赴。
5.設(shè)置正確的gradle版本
File->Settings
Build,Execution,Deployment->Build Tools->Gradle
這是解決gradle版本不匹配的問題。
6.?手動(dòng)同步gradle
Tools->Android->Sync Project with Gradle Files
7. 清理工程
Build->Clean Project
8. Invalidate and Restart
File->Invalidate Caches/Restart...
Invalidate and Restart
9. 更新android sdk
對(duì)于沒有下載相應(yīng)版本SDK的問題抑胎,按要求下載即可燥滑。
10. 更改工程目錄下build.grade文件
有時(shí)還會(huì)是這個(gè)問題Gradle '【project_name】' project refresh failed:? No cached version of com.android.tools.build:gradle:2.10.+ available for offline mode.
遇到這種情況就打開工程目錄下的build.gradle文件,之后更改
dependencies{
classpath'com.android.tools.build:gradle:2.10+'
}
打開 C:\Users\{你的用戶名}\.gradle\caches 文件阿逃,發(fā)現(xiàn)下面沒有2.10目錄铭拧,正常情況下赃蛛,在重啟Studio時(shí),如果沒有會(huì)重新去下載該文件目錄搀菩。如果不能正常下載焊虏,去copy一份放在該目錄下,就可以啦秕磷。
這只是我遇到問題的解決方式诵闭,可能你遇到的問題和我的一樣,希望這篇blog能幫助到你澎嚣。