Android studio依存衝突の解決

3627 ワード

最近1つのプロジェクトを引き継いだばかりで、中にはモジュールが3、4つあり、導入されたサードパーティのパッケージがもっと多くなった.しかし問題が発生し、新しい構成のstudioが実行されるとエラーが発生しました.
Error:Execution failed for task ':app:processDebugManifest'.

Manifest merger failed : Attribute meta-data#android.support.VERSION@value 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'
    }

さて、ここまでですが、今日のブログは终わりました.ご覧いただきありがとうございます.もっとポーズを取りたいので、本人のブログに注目してください.