精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Gradle 的依賴關系處理不當,可能導致你編譯異常!解決方案在此!

開發 開發工具
當我們作為一個初學者接觸 Gradle 的時候,大部分時間在使用它來添加依賴庫。而你所依賴的依賴庫,可能又依賴其他的庫,這非常的常見,這樣的情況被稱為依賴傳遞。

當我們作為一個初學者接觸 Gradle 的時候,大部分時間在使用它來添加依賴庫。而你所依賴的依賴庫,可能又依賴其他的庫,這非常的常見,這樣的情況被稱為依賴傳遞。

[[225518]]

這樣錯綜復雜的依賴關系,如果處理不好,可能達不到你預期的效果,而你有深究過嗎?

我們帶著問題來看看如何解決 Gradle 依賴關系導致的問題。

在 Android Studio 中,Gradle 構建過程對于開發者來說,很大程度上是抽象的。作為一個新的 Android 開發者,我們***次遇到 Gradle 通常是在 build.gradle 文件中添加一個遠程依賴項。

讓我們看看如何閱讀 Gradle 依賴關系樹,并解決與依賴關系有關的問題。

這是我工作中管理的一個項目,我想將 targetVersion 升級到 27,我也在 Gradle 中,更新了新版的 appcompat-v7 支持庫到***的依賴版本 27.0.2。在更改之后,同步項目,在 build.gradle 中出現以下錯誤提示:

該錯誤表示我必須使用完全相同版本的支持庫。可是我只在我的 build.gradle 中,使用了這個支持庫。

Android Studio 的這個提示到底是什么意思?

這個錯誤提示中,提及到的 com.android.support:animated-vector-drawable:27.0.2或com.android.support-v4:21.0.3 是在哪里又被引用了?

如果只是應用程序的直接依賴庫,只需要在 build.gradle 中指明依賴就好了,這樣非常的清晰明了。但是實際情況并非如此,這些依賴關系可能會進一步擁有自己的依賴關系,這被稱為 依賴傳遞 。Gradle 需要在應用中包含所有的直接或者間接的依賴。

前面 Android Studio 提示的錯誤信息,正是我們現在討論的這些傳遞性依賴關系導致的。

Gradle 必須解決所有的這些依賴關系。包含使用了哪些庫?如果兩個不同的庫對同一個庫有不同版本的依賴關系,會發生什么問題?

要查看 Gradle 依賴關系樹(Gradle 解析依賴關系的方式),我們可以到位于 Android Studio 底部的 Terminal 選項卡并輸入以下命令:

  1. gradlew app:dependencies 

這將顯示所有 構建變體 的依賴關系解析樹。我們可以在上面的命令中添加一個標識來查看特定構建變體的配置。例如 --configuration releaseCompileClasspath將向我們展示 release 變體的依賴樹。

關于構建變體,建議閱讀官方文檔:

https://developer.android.com/studio/build/build-variants.html

以上是上述命令的輸出:

  1. releaseCompileClasspath - Resolved configuration for compilation for variant: release 
  2. +--- com.android.databinding:library:1.3.1 
  3. |    +--- com.android.support:support-v4:21.0.3 
  4. |    |    \--- com.android.support:support-annotations:21.0.3 -> 27.0.2 
  5. |    \--- com.android.databinding:baseLibrary:2.3.0-dev -> 3.0.1 
  6. +--- com.android.databinding:baseLibrary:3.0.1 
  7. +--- com.android.databinding:adapters:1.3.1 
  8. |    +--- com.android.databinding:library:1.3 -> 1.3.1 (*) 
  9. |    \--- com.android.databinding:baseLibrary:2.3.0-dev -> 3.0.1 
  10. +--- com.android.support.constraint:constraint-layout:1.0.2 
  11. |    \--- com.android.support.constraint:constraint-layout-solver:1.0.2 
  12. \--- com.android.support:appcompat-v7:27.0.2 
  13.      +--- com.android.support:support-annotations:27.0.2 
  14.      +--- com.android.support:support-core-utils:27.0.2 
  15.      |    +--- com.android.support:support-annotations:27.0.2 
  16.      |    \--- com.android.support:support-compat:27.0.2 
  17.      |         +--- com.android.support:support-annotations:27.0.2 
  18.      |         \--- android.arch.lifecycle:runtime:1.0.3 
  19.      |              +--- android.arch.lifecycle:common:1.0.3 
  20.      |              \--- android.arch.core:common:1.0.0 
  21.      +--- com.android.support:support-fragment:27.0.2 
  22.      |    +--- com.android.support:support-compat:27.0.2 (*) 
  23.      |    +--- com.android.support:support-core-ui:27.0.2 
  24.      |    |    +--- com.android.support:support-annotations:27.0.2 
  25.      |    |    \--- com.android.support:support-compat:27.0.2 (*) 
  26.      |    +--- com.android.support:support-core-utils:27.0.2 (*) 
  27.      |    \--- com.android.support:support-annotations:27.0.2 
  28.      +--- com.android.support:support-vector-drawable:27.0.2 
  29.      |    +--- com.android.support:support-annotations:27.0.2 
  30.      |    \--- com.android.support:support-compat:27.0.2 (*) 
  31.      \--- com.android.support:animated-vector-drawable:27.0.2 
  32.           +--- com.android.support:support-vector-drawable:27.0.2 (*) 
  33.           \--- com.android.support:support-core-ui:27.0.2 (*) 

在查找目的之前,理解 Gradle 依賴關系樹的格式很重要。

先來談談以下三個符號,它們的目的僅用于格式化:

  • +- - - 是依賴分支庫的開始。
  • |  標識還是在之前的依賴庫中的依賴,顯示它依賴的庫。
  • \- - - 是依賴庫的末尾。

星號(*) 在依賴庫的末尾,意味著該庫的進一步依賴關系不會顯示,因為它們已經列在其他某個子依賴樹中。

最重要的標識是 -> 。

如果 Gradle 發現多個依賴庫都依賴到同一個庫但是不同版本,那么它必須做出選擇。畢竟包含同一個庫的不同版本是沒有意義的。在這種情況下,Gradle 默認選擇該庫的***版本。

例如:

  1. | + — — com.android.support:support-v4:21.0.3 
  2. | | \ — — com.android.support:support-annotations:21.0.3 -> 27.0.2 

在上面,Gradle 告訴說,在 support-v4:21.0.3 依賴關系樹中, support-annotations:21.0.3 依賴于更新的版本 support-annotations:27.0.2 ,所以 27.0.2 將被使用。

現在我們知道如何閱讀 Gradle 依賴關系解析樹,我們回到本文的核心問題:所有 com.android.support 庫必須使用完全相同的版本。

所有支持庫都屬于以下組 com.android.support。正如我們在 Gradle 的依賴關系樹中看到的那樣,com.android.support:support-v4:21.0.3 是唯一具有版本 21.0.3 并且未解析到***版本的支持庫 27.0.2,這就是造成沖突的原因。

如何解決這個問題?有幾種方式,可以做到這一點:

1、通過 ResolutionStrategy

通過 ResolutionStrategy 強制指定 Gradle 的版本。

  1. android { 
  2.         configurations.all { 
  3.         // To resolve the conflict for com.android.databinding:library:1.3.1 
  4.         // dependency on support-v4:21.0.3         
  5.         resolutionStrategy.force 'com.android.support:support-v4:27.0.2' 
  6.     } 

關于 ResolutionStrategy 的具體細節,官方文檔中有詳細描述:

https://docs.gradle.org/current/dsl/org.gradle.api.artifacts.ResolutionStrategy.html

2、在 build.gradle 中指明版本

要在 build.gradle  中,明確指定添加的是 com.android.support:support-v4:27.0.2。這將讓Gradle 覆蓋舊版本。

  1. dependencies { 
  2.     implementation fileTree(dir: 'libs', include: ['*.jar']) 
  3.     implementation 'com.android.support.constraint:constraint-layout:1.0.2' 
  4.     // To resolve the conflict for com.android.databinding:library:1.3.1 
  5.     // dependency on support-v4:21.0.3 
  6.     implementation 'com.android.support:support-v4:27.0.2' 
  7.     implementation 'com.android.support:appcompat-v7:27.0.2' 

對我來說,在 build.gradle 中顯式添加依賴關系似乎更加的自然,并且可以留下注釋。當我們再次更新庫來檢查它是否仍然需要顯式添加時,這個注釋將提醒我關注它。

一旦添加并進行項目同步之后,錯誤文本將消失。現在,如果我們再次運行依賴關系命令,我們將看到support-v4:21.0.3解決-> 27.0.2。

大部分時候 Gradle 會正確解決依賴關系。而了解了 Gradle 的依賴關系,我想遇到這樣的問題我們應該更清楚如何去解決它。

【本文為51CTO專欄作者“張旸”的原創稿件,轉載請通過微信公眾號聯系作者獲取授權】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2009-11-06 15:25:25

WCF異常

2012-01-11 10:55:02

ASP.NET MVC

2024-10-14 08:29:14

異步編程任務

2020-09-04 13:50:35

前端異常監控代碼

2010-01-06 09:12:50

交換機安裝不當故障

2018-09-14 16:20:37

2017-06-01 11:17:57

Python異常重試解決方案

2025-09-28 09:26:57

2009-06-17 11:47:21

Hibernate 刪

2013-05-14 15:47:27

MySQL監控錯誤日志

2010-02-24 14:05:08

WCF openati

2010-01-07 13:38:09

交換機故障

2012-05-30 15:40:16

大并發并發解決方案

2010-02-26 15:46:48

Silverlight

2019-09-23 11:07:00

PythonRedis軟件

2012-05-25 10:37:06

Tomcat部署JspFactory

2010-06-09 08:49:54

IBM SSCT

2018-03-26 12:58:52

數據庫OracleMySQL

2010-01-06 09:37:06

華為交換機故障

2023-07-18 14:05:30

鴻蒙
點贊
收藏

51CTO技術棧公眾號

国产美女扒开尿口久久久| 亚洲美女又黄又爽在线观看| 在线观看成人免费| 丰满肥臀噗嗤啊x99av| 宅男噜噜噜66一区二区| 亚洲欧洲免费视频| 日日干日日操日日射| 丁香花在线影院| 久久免费电影网| 国产精品伦子伦免费视频| 欧美精品久久久久久久久46p| 亚洲成人高清| 欧美视频一区二区三区…| 亚洲精品成人a8198a| 精品人妻一区二区三区含羞草 | 亚洲美女视频网站| 日韩 国产 一区| 精品91久久| 一片黄亚洲嫩模| 日韩欧美亚洲日产国产| 亚洲免费成人网| 久久99精品久久久久久| 97在线视频免费看| 老熟妇高潮一区二区三区| 欧美wwwwww| 欧美一级高清大全免费观看| 国产天堂在线播放| 国产理论电影在线| 亚洲三级免费电影| 亚洲精品无人区| 免费成人av电影| 成人爱爱电影网址| 91系列在线观看| 中文字幕在线观看视频一区| 国产午夜精品一区二区三区欧美| 美女少妇精品视频| 一级片黄色录像| 女优一区二区三区| 精品国产乱码久久久久久牛牛| 热久久久久久久久| 成人国产精选| 欧美在线视频日韩| aaa毛片在线观看| 久久青草伊人| 午夜精品福利一区二区三区蜜桃| 老司机午夜网站| 秋霞午夜在线观看| 久久久精品一品道一区| 久久国产精品一区二区三区四区| www.久久伊人| 国产精品中文字幕一区二区三区| 国产这里只有精品| 一道本无吗一区| 男女视频一区二区| 国产精品视频成人| 中文字幕在线一| 麻豆视频一区二区| 成人av色在线观看| 亚洲天堂男人网| 精品在线观看视频| 亚洲综合精品伊人久久| 99久久亚洲精品日本无码| 狠狠色综合播放一区二区| 国产日韩专区在线| 国产日韩精品suv| 国产成人综合网| 成人av资源网| 四虎永久在线精品免费网址| 91在线免费播放| 日本不卡二区高清三区| 国产小视频免费在线网址| 久久久精品蜜桃| 亚洲图片小说在线| 91网址在线观看| 亚洲第一福利视频在线| 久色视频在线播放| 91精品韩国| 欧美精品久久99久久在免费线| 手机免费av片| 91成人福利| 亚洲精品资源在线| 成年人视频软件| 中文无码久久精品| 欧美激情在线一区| 99久久久无码国产精品免费蜜柚| 麻豆免费精品视频| 成人永久免费| 国产在线视频资源| 亚洲欧美综合另类在线卡通| 欧美激情亚洲天堂| 日韩精品99| 欧美一区二区三区在线看| 韩国三级视频在线观看| 小说区图片区色综合区| 最近2019年手机中文字幕| 免费三片在线播放| 亚洲免费中文| 97免费资源站| 国产爆初菊在线观看免费视频网站 | 综合激情一区| 国产成人av在线| 99久久精品国产色欲| 久久夜色精品国产噜噜av| 久久久一二三四| 中文av在线全新| 91精品欧美久久久久久动漫| 国产精品三级在线观看无码| 亚洲国产日韩欧美在线| 国产www精品| 亚洲AV无码乱码国产精品牛牛| 久久一区二区三区四区| 97免费视频观看| 国产成人福利夜色影视| 日韩激情在线视频| 无码人妻精品一区二区三区夜夜嗨 | 自拍亚洲一区欧美另类| 国产真实的和子乱拍在线观看| 免费精品99久久国产综合精品| 精品国产乱码久久久久| 黄网页免费在线观看| 色狠狠一区二区三区香蕉| 亚洲v在线观看| 天天揉久久久久亚洲精品| 热久久99这里有精品| 亚洲精品国产suv一区| 国产精品毛片大码女人| 六月丁香婷婷激情| 国产精品17p| 免费不卡在线观看av| 久久影视中文字幕| 久久综合久久99| 久久99中文字幕| 国产一区二区三区黄网站| 一区二区三欧美| 国产成人精品777777| av影院午夜一区| 国产毛片久久久久久国产毛片| 国产欧美视频在线| 久久精品小视频| 亚洲天堂一二三| 亚洲国产高清在线观看视频| 日本精品www| 美女少妇全过程你懂的久久| 91成人在线视频| 婷婷丁香一区二区三区| 亚洲va韩国va欧美va精品| 一区二区三区四区影院| 欧美日一区二区三区在线观看国产免| 91中文精品字幕在线视频| 日本在线观看视频| 欧美日本一区二区三区| 黄色国产在线播放| 久草精品在线观看| 综合网五月天| 精品国产鲁一鲁****| 不卡av电影院| 免费成人在线看| 性做久久久久久久久| 国产高清成人久久| 国产一级一区二区| 欧美一级片免费观看| 欧美色网在线| 最新的欧美黄色| 国产精品久久久久毛片| 亚洲男人的天堂网| 国产女人18毛片水真多18| 亚洲永久在线| 亚洲成人精品电影在线观看| 欧美天堂在线| 欧美日韩成人网| 香蕉视频黄在线观看| 色婷婷亚洲综合| 国产精品免费人成网站酒店 | 51国偷自产一区二区三区的来源| 图片区小说区亚洲| 日韩经典中文字幕| 国产精品尤物视频| 亚洲色图视频网| 亚洲一区二区在线免费| 久久综合五月| av电影一区二区三区| 久久99偷拍| 国产精品一区二区三区在线播放| а√天堂在线官网| 亚洲国产一区二区三区在线观看| 亚洲黄色免费观看| 综合久久一区二区三区| 成人在线视频免费播放| 蜜桃精品视频在线| 国产手机免费视频| 欧美日韩中文一区二区| 91视频婷婷| 成人啊v在线| 欧美激情乱人伦一区| 青青久草在线| 精品久久久久久综合日本欧美| 无码人妻一区二区三区线| 亚洲美女视频一区| 美女脱光内衣内裤| 国产成人av影院| 校园春色 亚洲色图| 亚洲国产一区二区三区高清| 亚洲丰满在线| 日韩mv欧美mv国产网站| 亚洲自拍在线观看| 国产成人福利夜色影视| 欧美性资源免费| 少女频道在线观看免费播放电视剧| 亚洲美女黄色片| 丰满岳乱妇国产精品一区| 欧美日韩久久久久久| 欧美激情黑白配| 一区二区三区高清| 国产成人免费在线观看视频| 91香蕉视频mp4| 国产精品无码自拍| 国产综合色精品一区二区三区| 精品视频无码一区二区三区| 亚洲日本成人| 久操手机在线视频| 最新欧美人z0oozo0| 亚洲在线色站| 精品国产一区二区三区小蝌蚪 | 激情国产一区| 欧美少妇一区二区三区| 97精品国产一区二区三区| 欧美日韩亚洲在线| 欧美电影免费网站| 成人av免费看| 日韩视频一区二区三区四区| 成人福利视频网| 国产精品传媒麻豆hd| 国产精品91视频| 性感女国产在线| 欧美在线视频导航| 中文不卡1区2区3区| 91av在线视频观看| 黑森林国产精品av| 69久久夜色精品国产69乱青草| 欧美人与牲禽动交com| 欧美大尺度激情区在线播放| 巨大荫蒂视频欧美大片| 久久精品这里热有精品| 欧美成人xxx| 久久精品国产亚洲精品| 欧洲美女少妇精品| 最近2019年日本中文免费字幕| 最新97超碰在线| 色播久久人人爽人人爽人人片视av| 成人欧美亚洲| 色悠悠久久88| 五月香视频在线观看| 色偷偷噜噜噜亚洲男人的天堂| 1024免费在线视频| 最近2019免费中文字幕视频三| 日本高清中文字幕在线| 精品国产一区二区三区四区在线观看 | 久久天天躁夜夜躁狠狠躁2022| 久草中文在线| 欧美多人乱p欧美4p久久| 日本片在线观看| 国内精品视频久久| 亚洲欧美电影| 国产精品视频不卡| 日韩精品亚洲专区在线观看| 高清日韩一区| 亚洲精华一区二区三区| 日本视频一区二区不卡| 久久五月天小说| www国产免费| 夜久久久久久| 韩国视频一区二区三区| 国产一区二区三区四区五区美女| 制服.丝袜.亚洲.中文.综合懂| av欧美精品.com| 夫妇交换中文字幕| 亚洲激情一二三区| 国产成人愉拍精品久久 | 国产情侣av在线| 亚洲国产91色在线| 成人免费在线电影| 欧美大胆a视频| 黄色亚洲网站| www.久久久| 国产精品一国产精品| 中文字幕一区二区三区有限公司 | 亚洲欧美成人vr| 伊人狠狠色丁香综合尤物| 亚洲免费黄色| 亚洲午夜激情影院| 成人精品gif动图一区| 欧美福利第一页| 一区二区欧美国产| 亚洲婷婷综合网| 欧美精品 日韩| 欧美日韩在线精品一区二区三区激情综 | wwwwxxxx国产| 亚洲靠逼com| 波多野结衣毛片| 精品久久免费看| 久久五月精品| 国产精彩精品视频| 老牛精品亚洲成av人片| 中文精品视频一区二区在线观看| 国产欧美大片| 男人女人拔萝卜视频| 中文字幕欧美激情一区| 日韩人妻无码一区二区三区99| 欧美日韩国产高清一区二区三区| 偷拍自拍在线| 欧美巨乳美女视频| 久久人人视频| 欧美在线日韩精品| 亚洲精品国产日韩| 国产老头和老头xxxx×| 中文字幕av一区二区三区| 午夜精品三级久久久有码| 欧美一区二区三区免费视频| 91伦理视频在线观看| 欧美性视频精品| 国产毛片精品| 美女av免费观看| 韩国一区二区三区| av免费播放网站| 91黄色免费看| 男女污视频在线观看| 7m第一福利500精品视频| 一区二区三区四区精品视频| 中国成人亚色综合网站| 久久国产精品99精品国产| 亚洲女优在线观看| 色婷婷综合久久久久中文| 四虎电影院在线观看| 97在线观看免费高清| 极品尤物一区| 免费一级特黄毛片| 成人h动漫精品一区二区| 久久99久久98精品免观看软件| 91精品国产欧美一区二区成人| 免费网站免费进入在线| 国产情人节一区| 91麻豆精品国产91久久久平台| 亚洲老女人av| 亚洲欧洲另类国产综合| 91资源在线视频| 久久激情五月丁香伊人| 亚洲免费看片| 蜜臀在线免费观看| 国产福利精品一区| 欧美成欧美va| 亚洲精品在线免费播放| 第一av在线| 精品一区二区日本| 久久中文精品| 国产视频123区| 欧美一区二区三区视频| 秋霞在线午夜| 久久久久高清| 日本91福利区| 国产色无码精品视频国产| 日韩一级片网站| 9lporm自拍视频区在线| 久久精品一二三区| 蜜桃av一区| 小泽玛利亚一区| 欧美成人精品高清在线播放| 国产黄大片在线观看| 欧美日韩国产综合在线| 蜜臀国产一区二区三区在线播放| 久久国产精品国语对白| 精品成a人在线观看| 91精品论坛| 日本黄色播放器| av中文字幕亚洲| 欧美成人一区二区视频| 欧美成人黄色小视频| 噜噜噜狠狠夜夜躁精品仙踪林| 黄色高清无遮挡| 亚洲私人黄色宅男| 蜜桃久久一区二区三区| 国产精品18久久久久久麻辣| 婷婷综合网站| 日韩Av无码精品| 欧美在线不卡一区| 新版中文在线官网| 欧美日韩亚洲免费| 国产精品一区二区在线播放| 国产91精品一区| 久热精品在线视频| 亚洲黄页在线观看| 一级 黄 色 片一| 日韩欧美黄色动漫| 成人黄色在线电影| 欧美一区二区三区电影在线观看| 黄色资源网久久资源365| 日本天堂网在线| 久久69精品久久久久久久电影好| 少妇一区二区视频| 午夜影院福利社| 欧美日韩国产a|