在Android開發(fā)過程中,我們或多或少都會引入第三方庫,引入的庫越多,越容易產(chǎn)生庫之間的依賴沖突,所以我們今天一起來了解Android Studio查看第三方庫依賴樹。
下面就拿我遇到的問題還原一下:
之前接人容聯(lián)客服系統(tǒng)的時候,集成完成后進入客服頁面發(fā)生閃退,我們回顧一下錯誤信息:
我們關鍵看一下報錯代碼:
java.lang.NoSuchMethodError: No virtual method into (Landroid/widget/ImageView;)Lcom/bumptech/glide/request/target/Target; in class Lcom/a/a/i; or its super classes (declaration of 'com.a.a.i' appears in/data/app/com.sami91sami.h5-1/base.apk)
我們可以根據(jù)報錯,跳到報錯的地方:
該報錯的意思就是:沒有
into(Landroid/widget/ImageView)
的方法,代碼能編譯通過,說明項目中肯定是添加依賴了,那怎么還會報這個錯誤呢?還沒添加依賴之前,項目中也是使用的Glide進行圖片的加載,會不會是項目中的Glide與容聯(lián)Demo中的Glide有沖突呢。
我們可以根據(jù)報錯的地方into方法,點進入看源碼:
可以看到容聯(lián)Demo使用的Glide版本是3.7.0。
再來看看項目中Glide使用的版本:
可以看到項目中使用的Glide版本是4.5.0。
這時就想到真的很大概率是兩者的Glide版本有沖突了。
果然將容聯(lián)Demo中的Glide版本改成4.5.0之后,編譯運行進入客服界面后,沒有報錯了,完美解決。
這就是我之前遇到的庫沖突的問題,這個問題有錯誤信息可以定位到是Glide庫依賴的問題,要是遇到其它錯誤信息沒那么顯著的,那是不是就頭疼了呢。
當時遇到這個問題,我并沒有使用查看依賴樹的方式,而是直接查看了源碼,因為當時我并不知道還能這么干,幸運的是很快就定位到了問題所在,所以當我們升級第三方庫或者引入新的第三方庫時,庫與庫之間依賴沖突,我們需要知道每個第三方依賴庫的依賴樹,知道依賴樹就清楚哪里沖突啦。
下面就記錄下幾種查看依賴樹的方式:
方案一: Gradle task工具查看
1、點擊Android studio面板右上角“Gradle”,如圖所示:
2、按照如圖目錄找到dependencise雙擊,會在Run控制臺輸出打印,如圖所示:
3、打印如圖所示:
方案二:使用Gradle View插件
1、快捷鍵Ctrl+Alt+s,打開settings,然后點擊按鈕Plugins
2、搜索 Gradle View,然后安裝,并重啟Android Studio,我這是已經(jīng)安裝成功后的截圖
3、點擊菜單欄上View -> Tool Windows -> Gradle View,然后等待一會,就可以查看了。
如圖所示:
方案三:Terminal控制臺查看
在windows上Android studio Terminal中使用這個命令:
gradlew :app:dependencies(“app”為module名稱)
在MacOS中使用下面的命令:
./gradlew :app:dependencies(“app”為module名稱)
這個命令會將gradle執(zhí)行的各個步驟都打印出來,包括releaseUnitTestRuntimeClasspath,releaseUnitTestCompileClasspath,releaseRuntimeClasspath,releaseCompileClasspath,lintClassPath,debugUnitTestRuntimeClasspath等等。
那么,我們可以配置configuration 參數(shù)只查看其中一個的依賴樹就夠了。
./gradlew :app:dependencies --configuration compile
在Window系統(tǒng)下,無需使用./開頭,直接使用gradlew即可。
執(zhí)行app模塊下的dependencies任務;額外配置compile,編譯環(huán)境下的依賴項。
通過查看依賴樹,我們就能看到哪些依賴有沖突,比如某個框架的support包沖突,只要在moudle的gradle文件下找到該沖突的依賴用括號括住,在后面加:文章來源:http://www.zghlxwxcb.cn/news/detail-478521.html
{
exclude group:'com.android.support'
}
這要就可以把該框架的support包移除啦。文章來源地址http://www.zghlxwxcb.cn/news/detail-478521.html
到了這里,關于Android Studio查看第三方庫依賴樹的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!