最近被一個(gè)AS的sync問題困擾,在引入遠(yuǎn)程依賴包的時(shí)候,會(huì)出現(xiàn)一個(gè)sync錯(cuò)誤,提示找不到這個(gè)類庫。然而,并不是所有的工程都會(huì)出現(xiàn)這個(gè)問題,有的工程引入同樣的類庫卻沒有問題。
Error:(25, 13) Failed to resolve: com.jakewharton:butterknife:5.1.1
網(wǎng)上查了下(http://stackoverflow.com/questions/20746071/failed-to-build-android-hello-world-application-in-offline-mode),說是設(shè)置了offline work,需要將gradle設(shè)置里的offline work去掉,然而我的AS中并沒有勾選這個(gè)選項(xiàng)。
試一下把這個(gè)選項(xiàng)打開是什么效果,打開后重新sync出現(xiàn)下面的錯(cuò)誤,和之前的錯(cuò)誤有點(diǎn)差別,多了錯(cuò)誤提示“Disable offline mode and Sync”。也就是說,出現(xiàn)了如下這個(gè)問題的時(shí)候,可以通過關(guān)閉“offline work”選項(xiàng)來解決。
還是沒有找到我們問題的真正原因,只能繼續(xù)排查。偶然間發(fā)現(xiàn)另外一個(gè)工程中的build.gradle文件中配置有些不同的地方,比出錯(cuò)工程的build.gradle文件多了一段。
出錯(cuò)工程的build.gradle文件配置:
apply plugin: 'android'buildscript { repositories { jcenter { url "http://jcenter.bintray.com/" } } dependencies { classpath 'com.android.tools.build:gradle:1.3.0' }}
正確工程的build.gradle文件配置:
apply plugin: 'android'buildscript { repositories { jcenter { url "http://jcenter.bintray.com/" } } dependencies { classpath 'com.android.tools.build:gradle:1.3.0' }}allprojects { repositories { jcenter() }}
試著給正確工程的build.gradle添加上這一段配置,重新sync,竟然通過了。。。
前面已經(jīng)配置了遠(yuǎn)程倉庫,怎么還需要再配置一份呢?還是需要查下build.gradle中的buildscript和allprojects兩個(gè)配置項(xiàng)有什么差別。
原來buildscript中的聲明是gradle腳本自身需要使用的資源。可以聲明的資源包括依賴項(xiàng)、第三方插件、maven倉庫地址等。而在build.gradle文件中直接聲明的依賴項(xiàng)、倉庫地址等信息是項(xiàng)目自身需要的資源。
“allprojects”這個(gè)配置項(xiàng)在Android Studio默認(rèn)生成的工程中的build.gradle文件中是存在的,我這個(gè)工程之所以沒有,是由于我的工程是從Eclipse工程轉(zhuǎn)換來的。
總結(jié)
以上所述是小編給大家介紹的Android Studio不能獲取遠(yuǎn)程依賴包的解決方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對IIS7站長之家網(wǎng)站的支持!
新聞熱點(diǎn)
疑難解答
圖片精選