1. 程式人生 > >Android studio 依賴衝突的解決

Android studio 依賴衝突的解決

最近剛接手一個專案,裡面模組有三四個,引入的第三方包更多了。但是問題來了,新配置的studio一執行就報了錯。

Error:Execution failed for task ':app:processDebugManifest'.

Manifest merger failed : Attribute meta-data#[email protected] value=(25.3.1) from [com.android.support:design:25.3.1] AndroidManifest.xml:27:9-31
is also present at [com.android.support:support-v4:26.0.0-alpha1] AndroidManifest.xml:27:9-38 value=(26.0.0-alpha1).
Suggestion: add ‘tools:replace=”android:value”’ to element at AndroidManifest.xml:25:5-27:34 to override.
可以看到,studio已經明確的指出了錯誤,在清單檔案中Android support 庫版本衝突了,而且,studio還很“人性”地給出了suggestion:清單檔案25行——27行新增:

tools:replace="android:value"

坑就坑在這裡,給出的建議完全誤導人了。咳咳,下面看我詳(如)細(何)解(裝)釋(逼):

問題分析:

看到com.android.support:design:25.3.1 和
com.android.support:support-v4:26.0.0-alpha1,
說明這個Android support庫版本衝突了,解決的思想很簡單,就是統一使用同一個版本的support庫,比如修改掉26.0.0-alpha1的依賴,統一換成25.3.1的版本。

解決

既然有了思路,那就動手試一試,全域性搜尋26.0.0-alpha1,統一替換為 25.3.1
正常情況下,這個是能解決問題的,但只能解決gradle裡面自己引入的依賴版本問題。然而,今天碰到的坑還沒完呢,同步程式碼以後,還是原來的錯誤資訊!

再次分析:

問題就出在第三方庫的依賴了,好多第三方庫預設引用當前最新的support庫,現在最新的就是26.0.0-alpha1這個版本。所以,要解決問題,就要從引入的三方庫裡面入手了!那麼問題來了,挖掘機哪家......哦不,怎麼知道哪個依賴包有衝突?下面出殺手鐗了:
開啟Android studio下面的terminal,輸入命令:`gradle -q app:dependencies`,驚喜出現了:沒有配置gradle環境變數的同學趕快去配一個吧!
配過之後可以看到類似一下的輸出:

+— project :base-util
| +— com.android.support:recyclerview-v7:25.3.1 (*)
| +— cn.qqtheme.framework:WheelPicker:1.5.1
| | +— cn.qqtheme.framework:Common:1.5.1
| | | +— com.android.support:support-v4:latest.release -> 26.0.0-alpha1 (*)
| | | — com.android.support:support-annotations:latest.release -> 26.0.0-alpha1
| | +— com.android.support:support-v4:latest.release -> 26.0.0-alpha1 (*)
| | — com.android.support:support-annotations:latest.release -> 26.0.0-alpha1
| +— com.github.CymChad:BaseRecyclerViewAdapterHelper:v1.9.8
| +— io.reactivex:rxjava:1.1.8
| +— io.reactivex:rxandroid:1.1.0
| | — io.reactivex:rxjava:1.1.0 -> 1.1.8
| +— com.squareup.okhttp3:okhttp:3.2.0 -> 3.4.1
| | — com.squareup.okio:okio:1.9.0
| +— com.squareup.retrofit2:retrofit:2.0.2
| | — com.squareup.okhttp3:okhttp:3.2.0 -> 3.4.1 (*)
| +— com.squareup.retrofit2:adapter-rxjava:2.0.2
| | +— com.squareup.retrofit2:retrofit:2.0.2 (*)
| | — io.reactivex:rxjava:1.1.1 -> 1.1.8
| +— com.squareup.retrofit2:converter-gson:2.0.2
| | +— com.squareup.retrofit2:retrofit:2.0.2 (*)
| | — com.google.code.gson:gson:2.6.1
| +— com.squareup.okhttp3:logging-interceptor:3.4.1
| | — com.squareup.okhttp3:okhttp:3.4.1 (*)
| +— com.github.zhaokaiqiang.klog:library:1.5.0
| | — com.android.support:support-annotations:23.4.0 -> 26.0.0-alpha1
| +— com.squareup.retrofit2:converter-simplexml:2.0.2
| | +— com.squareup.retrofit2:retrofit:2.0.2 (*)
| | — org.simpleframework:simple-xml:2.7.1
| +— com.github.bumptech.glide:glide:3.7.0
| +— project :base-res (*)
| — com.jakewharton:butterknife:7.0.1

很明顯cn.qqtheme.framework:WheelPicker這個包預設引用了最新的support庫!

最終解決:

找到依賴的庫,修改為下面的方式引入:

compile ('cn.qqtheme.framework:WheelPicker:1.5.1'){
        exclude group:'com.android.support'
    }

好了,到此為止,今天的博(裝)客(逼)就結束了,感謝大家的觀看!
欲知更多裝逼姿勢,請關注本人部落格吧~

相關推薦

Android studio 依賴衝突解決

最近剛接手一個專案,裡面模組有三四個,引入的第三方包更多了。但是問題來了,新配置的studio一執行就報了錯。 Error:Execution failed for task ':app:processDebugManifest'. Manifest

Android Studio衝突解決方法

在為專案加入環信時遇到了包衝突 library:easeui-sdk3.0 環信和原先的專案都使用到了glide,版本不一致,重複引發了衝突 1.如何查詢哪個jar衝突了 a.一般如果衝突了,在編譯的時候就會出現錯誤,根據出現的錯誤就可以知道那個包衝突

Android Studio中架包打包和依賴衝突解決

一、為什麼使用aar打包,而不是jar 隨著Android Studio的使用越來越廣泛,使用aar打包這種方式也越來越可行實際。 jar打包只打原始碼,像資原始檔不會打包,而aar恰恰是jar打包的補充完善,它會把程式碼和資源統統打包進一個檔案。 二

Android studio jar衝突 檔案衝突 aar引用相同的檔案 引用相同的jar包 重複匯入相同依賴

       開發專案,多多少少都會引進一些第三方jar或者aar資原始檔,方便開發個性化功能,但這樣就經常會出現包衝突、檔案衝突、重複匯入資源或者匯入倆個不同的包中包含有相同的檔案資源呢!後果導致編譯失敗,提示錯誤! 下面就來加講解下我遇到問題及解決方法:

[Android開發] Android Studio問題以及解決記錄

bool found contex -i 設置 o-c mave expect andro http://blog.csdn.net/niubitianping/article/details/51400721 1、真機運行報錯Multi dex requires Buil

安裝Android studio出現'tools.jar' seems to be not in Android Studio classpath......的解決方法

eas 一個 origin java_home ems view 使用 分享 title 安裝Android studio出現‘tools.jar‘ seems to be not in Android Studio classpath......的解決方法 原創 201

第一篇:安裝Android Studio問題及其解決方案

.com 及其 pla try onf posit blog chmod 提示 ubuntu18.04配置android studio3.2.1環境 1.JDK安裝與配置:https://www.cnblogs.com/yuanbo123/p/5819564.html(按照

android studio 常見錯誤解決積累

1、新安裝的Android Studio  執行專案是,報錯 解決:File——>Setting -——>Build,Execution——>Instant Run  把Enable Instant Run  去掉打鉤就行了 2

【工作記錄】Found Banned Dependency: commons-logging:commons-logging 依賴衝突解決

【問題概述】      在使用maven構建專案的時候,偶爾會遇到jar包依賴衝突的問題,比如: [WARNING] Rule 2: org.apache.maven.plugins.enforcer.BannedDependencies failed with m

maven依賴衝突解決方案

1. 傳遞依賴   1.1 什麼是傳遞依賴     如果A依賴於B,B依賴於C,則稱B是A的直接依賴,C是A的傳遞依賴   1.2 傳遞依賴衝突     如A依賴於B,B依賴於C(1.1版本),同時A依賴於D,D也依賴於C(2.1版

maven依賴衝突解決辦法

  一般的開發,maven依賴衝突基本不存在,但是如果專案多,依賴複雜,就說不定了。依賴衝突說明專案依賴的某一個jar包,有多個不同的版本,至少兩個或兩個以上,對於這種問題,最直接的就是通過修改專案依賴的版本為最新的版本即可。同時,也有另一種解決辦法,就是將傳遞依賴剪除掉(低版本的那個依

log4j-over-slf4j.jar AND slf4j-log4j12.jar 依賴衝突解決方案

使用maven構建專案時,使用了slf4j+logback,並沒有主動新增log4j依賴,但是仍然報下面錯誤: Caused by: java.lang.IllegalStateException: Detected both log4j-over-slf4j.jar AND bound slf

實現離線安裝、配置Android Studio開發環境 解決方案

近期專案需要提供AS的離線開發工具安裝 ,沒錯網上的帖子很多 ,但有問題的也很多,因為越往下做 ,一個個問題接踵而至,不同的嘗試,也發現出一條路子,但還是存在一定侷限,但能將就一下,聽我娓娓道來。 1.開發環境的準備 2.相關配置   開發工具準備: A. 

Maven依賴衝突解決 及 常見錯誤

Maven依賴衝突解決及常見錯誤 Web工程依賴 兩個不同的maven專案,依賴同一個artifactId但是版本不同,這時候就會產生maven的jar依賴衝突問題! 排除依賴 <dependencies>

android 架包衝突解決方案

作為一名剛學android五個月的小白,之前無論學習基礎,還是看一些培訓機構的教學專案,裡面都是用listView來展示資料。 下午心血來潮,便想學習一下recycleView,則需要匯入一些其他人的

maven傳遞依賴衝突解決

傳遞依賴: A.jar 依賴 B.jar, B.jar 依賴 C.jar, 這個時候我們就說B是A的直接依賴, C是A傳遞依賴; 傳遞依賴可能會產生衝突: 聯絡著上面, 新匯入一個jar包D.jar, D依賴C.jar, 但是B依賴的1.1版本, 而D依賴的是1.2版本

升級Android Studio,依賴內部Maven,部分元件丟失問題.

昨天閒得沒事,把Android Studio從3.0.1 升級了一下,升級到了3.1.3. 然後發現 依賴內部Maven庫的一個元件沒了… 開發APP,依賴了很多各個部門提供的各種元件,

在windows中開啟Hyper-V與android studio模擬器衝突問題

在windows中已經開啟Hyper-V服務後安裝android studio的模擬器會發現提示語hyper-v不相容 解決方法:關閉Hyper-V,關閉Hyper-V有以下兩種方法: 1、前往控制面板-Windows功能可開啟虛擬機器管理功能。清除圖中複選框內容然後重新啟動電腦即可。 2、用管理員

android studio 常見問題解決

1 設定libs  sourceSets { main { jniLibs.srcDirs = ['libs'] } } }

Maven依賴原則及依賴衝突解決

1、Maven依賴原則 ①最短路徑優先 ②同路徑宣告順序優先 2、查詢依賴樹 ①mvn dependency:tree ②idea檢視,maven project,選擇模組,右鍵show dependencies ③eclipse 開啟pom.xml,切換到Dep