すべてのcom.android.supportライブラリは、まったく同じバージョン仕様を使用する必要があります


788

Android Studio 2.3に更新した後、このエラーメッセージが表示されました。アプリが正常に実行されるときのヒントにすぎませんが、それは本当に奇妙です。

すべてのcom.android.supportライブラリは、まったく同じバージョン仕様を使用する必要があります(バージョンを混在させると、ランタイムクラッシュが発生する可能性があります)。バージョン25.1.1、24.0.0が見つかりました。例には、com.android.support:animated-vector-drawable:25.1.1およびcom.android.support:mediarouter-v7:24.0.0が含まれます。

ここに画像の説明を入力してください

私のグラドル:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    testCompile 'junit:junit:4.12'

    compile 'com.android.support:appcompat-v7:25.1.1'
    compile 'com.android.support:support-v4:25.1.1'
    compile 'com.android.support:design:25.1.1'
    compile 'com.android.support:recyclerview-v7:25.1.1'
    compile 'com.android.support:cardview-v7:25.1.1'
    compile 'com.google.android.gms:play-services-maps:10.2.0'
    compile 'com.google.android.gms:play-services:10.2.0'

    compile 'io.reactivex.rxjava2:rxjava:2.0.1'
    compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
    compile 'com.jakewharton:butterknife:8.4.0'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
    compile 'com.blankj:utilcode:1.3.6'
    compile 'com.orhanobut:logger:1.15'
    compile 'com.facebook.stetho:stetho:1.4.2'

    provided 'com.google.auto.value:auto-value:1.2'
    annotationProcessor 'com.google.auto.value:auto-value:1.2'
    annotationProcessor 'com.ryanharter.auto.value:auto-value-parcel:0.2.5'

    compile 'com.mikepenz:iconics-core:2.8.2@aar'
    compile('com.mikepenz:materialdrawer:5.8.1@aar') { transitive = true }
    compile 'com.mikepenz:google-material-typeface:2.2.0.3.original@aar'
    compile 'me.zhanghai.android.materialprogressbar:library:1.3.0'
    compile 'com.github.GrenderG:Toasty:1.1.1'
    compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.8.0'
    compile 'com.github.MAXDeliveryNG:slideview:1.0.0'

    compile 'com.facebook.fresco:fresco:1.0.1'
    compile 'com.github.bumptech.glide:glide:3.7.0'

    compile 'com.google.maps.android:android-maps-utils:0.4.4'
    compile 'com.github.jd-alexander:library:1.1.0'
}

これをprojectBuild.Gradleサブプロジェクトに追加します{project.configurations.all {resolutionStrategy.eachDependency {詳細-> if(details.requested.group == 'com.android.support' &&!details.requested.name.contains( 'multidex ')){details.useVersion "26. +"}}}}
Sunil Chaudhary '30

回答:


906

これは、次のいずれかの解決策で解決できます。

更新:

Android Studio 3.0以降では、より役立つヒントが表示されるようになり、このヒントに従うだけで済みます。
例えば: 1]

すべてのcom.android.supportライブラリは、まったく同じバージョン仕様を使用する必要があります(バージョンを混在させると、ランタイムクラッシュが発生する可能性があります)。バージョン27.0.2、26.1.0が見つかりました。例には、com.android.support:animated-vector-drawable:27.0.2およびcom.android.support:customtabs:26.1.0が含まれます。

ライブラリ、またはツールとライブラリのいくつかの組み合わせがあり、それらは互換性がないか、バグを引き起こす可能性があります。そのような非互換性の1つは、最新バージョンではないAndroidサポートライブラリのバージョン(または特に、targetSdkVersionよりも低いバージョン)でコンパイルすることです。

解決策:
古いバージョンで新しいバージョン番号のライブラリを明示的に追加します。
私の場合com.android.support:customtabs:26.1.0は追加する必要があるので:

implementation "com.android.support:customtabs:27.0.2"  

つまり、2番目のアイテムからライブラリを取得し、最初のバージョン番号でそれを実装します。

注:Gradleがディペンデンシーグラフを再構築して競合が発生していないか確認できるように、今すぐ同期を押すことを忘れないでください。

説明:
使用しないcustomtabsので、エラーメッセージによって混乱する可能性があります。
まあ..あなたはそれを直接使用していませんが、ライブラリの1つがcustomtabs内部で古いバージョンを使用しているため、直接要求する必要があります。

古いバージョンの原因となっているライブラリを知りたくて、作者にlibの更新を依頼する場合は、Gradle依存関係レポートを実行してください。古い回答を参照して、方法を確認してください。

これに注意してください


古い答え:

CommonsWareの回答に触発されました

Gradle依存関係レポートを実行して、依存関係のツリー全体を確認します。

そこから、どのライブラリがAndroidサポートライブラリの異なるバージョンを要求しているかがわかります。それが求めているものは何でも、25.2.0バージョンで直接要求するか、Gradleの他の競合解決アプローチを使用して同じバージョンを取得できます。


更新:

Gradleプラグインのバージョン:3.0 compileは置き換えられたimplementationか、違いapiについてはこの回答を参照してください。

したがって、代わりに使用してください:

./gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath

またはwindows cmdの場合:

gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath

競合するバージョンを検索します。

私にとっては、削除後にエラーが消えました com.google.android.gms:play-services:10.2.0

そしてだけ含めるcom.google.android.gms:play-services-location:10.2.0com.google.android.gms:play-services-maps:10.2.0、彼らは2つだけプレイサービスをしているように私は使用していること。

gms:play-servicesはサポートライブラリのいくつかの古いコンポーネントに依存していると思うので、それらを明示的に追加する必要があります。


AS 3.0以前の場合。

実行:

./gradlew -q dependencies <module-name>:dependencies --configuration implementation

例:

./gradlew -q dependencies app:dependencies --configuration implementation

誰かが新しいgradleプラグインでより良い方法を知っているなら、私に知らせてください。


3
com.google.android.gms:play-services:10.2.0SDK 14以降をサポートします10.0.1
。SDK14

2
@humazed noobの質問、Android Studioでコマンドをどこで実行しますか?
ハイカルナシュハ2017年

1
ターミナルでは、最初に、play-servicesのことを試してみてください
2017年

1
これは狂気だと思っているのは私だけですか?....私はちょうどのAdMobやFacebookをしたい、と彼らは一緒に働くことを拒否
ジェイ

3
examples includeエラーメッセージのテキストは、問題の種類の漠然とした一般的な例ではなく、自分のプロジェクトの実際の例を示していることを指摘しておくと役立ちます。2番目のアイテムからライブラリを取得し、最初のバージョン番号でそれを実装します。
ベンジャミンカーシュナー

203
  1. project/.idea/librariesファイルシステムのフォルダーに移動し、どのライブラリが異なるかを確認します。
  2. build.gradleファイルに同じバージョンのこれらのライブラリを手動で含める必要があります。
  3. 次に、プロジェクトを同期します。

例えば:

compile 'com.android.support:appcompat-v7:25.2.0'

// Wrong library version found on 1st point
compile 'com.android.support:customtabs:25.2.0'

いい視点ね。実際にどれが間違っているか見てみようとは思ってもみませんでした。:Sありがとう!
トビアスライヒ


10
/ Project Files / My project / .idea / librariesには、異なるバージョンの複数のサポートファイルがあります。これで、どのモジュールまたは依存関係がこれを使用しているかをどのように知ることができますか?
Satpal Yadav 2017

2
@SatpalYadav入手可能な最新のものと一致しないバージョンを検索しました(アプリで使用しています)。たとえば、support:design:25.3.1を使用していますが、material-dialogsはsupport-v13:25.1.1を使用しています。だから私はsupport-v13:25.3.1を追加し、エラーは消えます。
hardysim、2017年

1
これは今のところ私にとって最良の解決策ですが、新しいライブラリをオーバーライドするにはどうすればよいですか?
Mateusz Kaflowski 2018年

149

これらのバージョンやライブラリだけでなく、すべての場合:

エラーについて何かを言っている小さな情報ウィンドウに注意してください、それはあなたが変更して追加しなければならない例を示しています

この場合:

バージョン25.1.1、24.0.0が見つかりました。例には、com.android.support:animated-vector-drawable:25.1.1およびcom.android.support:mediarouter-v7:24.0.0が含まれます。

君の

com.android.support:animated-vector-drawable:25.1.1

バージョン25.1.1であり、

com.android.support:mediarouter-v7:24.0.0

はバージョン24.0.0なので、同じバージョンのmediarouterを追加する必要があります。

com.android.support:mediarouter-v7:25.1.1

そして、小さな情報ウィンドウに表示されるすべての例について、この場合 は、この場合、バージョン25.1.1を持たないすべてのライブラリーを実行します。

示されたライブラリーを修正した後、変更する必要がある次のライブラリーとパッケージを表示するには、gradleを同期する必要があります。

重要:

1つ以上の指定されたライブラリを明示的に使用しておらず、エラーが発生している場合は、別のライブラリによって内部的に使用されていることを意味します。とにかく明示的にコンパイルしてください。

別の方法を使用して、実際にコンパイルしているすべてのライブラリのバージョンの違いを確認することもできます(gradle依存関係レポートを実行するか、ライブラリファイルに移動するなど)。実際の目的は、使用しているすべてのライブラリをコンパイルすることです。同じバージョン


1
トンありがとう、support:mediarouter正確には何を説明できますか?
mrid

1
これは、私たちのほとんどが見落としているとあなたが指摘したものだと思います。そして、「エラーについて何かを言っている小さな情報ウィンドウに注意を払ってください...」。ありがとうございます。これにより、実際に何が起こっているのかをよりよく理解できるようになりました。
Yo Apps

103

問題を解決する最良の方法は、Android Studioによって提案されたすべての「com.android.support:...」を実装することです

(27.1.1、28.0.0など、使用しているサポートバージョンは関係ありません)

カーソルをエラー行に置きます。

implementation 'com.android.support:appcompat-v7:28.0.0'

Android Studioは、「com.android.support:...」が「com.android.support:appcompat-v7:28.0.0」とは異なるバージョンであることを提案します

すべてのcom.android.supportライブラリは、まったく同じバージョン仕様を使用する必要があります(バージョンを混在させると、ランタイムクラッシュが発生する可能性があります)。見つかったバージョン28.0.0、27.1.0、27.0.2。例には、com.android.support:animated-vector-drawable:28.0.0およびcom.android.support:exifinterface:27.1.0が含まれます。

com.android.support:animated-vector-drawable:28.0.0 &を追加しcom.android.support:exifinterface:28.0.0ます。次に、gradleファイルを同期します。

この行にエラーが発生しなくなるまで、提案された「com.android.support:...」をすべて1つずつ実装してみます implementation 'com.android.support:appcompat-v7:28.0.0'

私の場合、私は追加しました

implementation 'com.android.support:appcompat-v7:28.0.0'

implementation 'com.android.support:animated-vector-drawable:28.0.0'
implementation 'com.android.support:exifinterface:28.0.0'
implementation 'com.android.support:cardview-v7:28.0.0'
implementation 'com.android.support:customtabs:28.0.0'
implementation 'com.android.support:support-media-compat:28.0.0'
implementation 'com.android.support:support-v4:28.0.0'

これらすべての依存関係は、ユーザーによって異なる場合があります。


「implementation 'com.android.support:animated-vector-drawable:28.0.0'」と「implementation 'com.android.support:support-media-compat:28.0.0'」の両方を手動で追加しましたが、「implementation」 com.android.support:appcompat-v7:28.0.0 '"にはまだ赤の下線が引かれています
AAEM

@AAEMカーソルをエラー行に置くと、次に追加する必要がある依存関係が表示されます。すべての依存関係を同じバージョンに追加し、gradleファイルを同期してください。再びエラーが表示される場合は、エラーがなくなるまで手順を繰り返します。
Adarsh Vijayan P

100

これをbuild.gradle(Module:app)の最後に追加します。

configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
    def requested = details.requested
    if (requested.group == 'com.android.support') {
        if (!requested.name.startsWith("multidex")) {
            details.useVersion '25.3.1'
        }
     }

   }
}

「25.3.1」を、すべての依存関係に使用するAndroidサポートライブラリのバージョンに置き換えてください。これは、SDKのバージョンよりも低くないようにする必要があります

グラドルを再同期するより


3
これは私が必要とするものであり、トップレベルでより低いバージョンを指定した場合でも、私の依存関係の1つは何とかして27.0.1を取り込みました。好奇心から、なぜ「マルチデックス」を除外するのですか?
光線

4
これは私にとって一日を節約しました。しかし、このAndroid開発は、通過するたびにさらに細分化されています。展開する前に、すべてのサポートライブラリを完全にチェックする必要があります。私たちは、これをすべて行うのではなく、製品の構築に集中したいので、常に新しいサポートリリースを実行するための時間の余裕はありません。いつもイライラする
larrytech

1
あなたはより多くのグルーヴィー、及びそのintelijiプラグインについて学ぶためにここに行くことができ@ThinkTwiceCodeOnce:jetbrains.com/help/idea/getting-started-with-groovy.html
ezzou

1
あなたは命の恩人です。これは何度も賛成されるべきです!
imin

1
これがソリューションになるはずです...賛成
Ast

54

Android Studio 2.3にアップデートした後、まったく同じ問題が発生しました

この行を依存関係に追加すると、問題が解決しました。

compile 'com.android.support:customtabs:25.2.0'

2
Android Studio 2.3に更新した後、まったく同じ問題が発生しました
Plugie

1
RenderScriptを使用している場合は、renderscriptSupportModeEnabled falseこれをfalse に設定します。追加されたコンパイル'com.android.support:customtabs:25.2.0'とエラーはなくなりました。
法律Gimenez 2017年

1
@LawGimenezそして、単にそれを無効にした場合、renderscriptをどのように使用すべきですか?
dor506 2017年

3
私の問題はrenderscriptも原因であるように見えますが、customtabsではなく、何か別のrenderscriptが必要な場合はどうなりますか?
HendraWD 2017年

46

A)実行gradle dependenciesまたは./gradlew dependencies

B)ツリーを見て、どの依存関係が、制御していない依存関係の異なるサポートライブラリバージョンを指定しているかを確認します。

この警告は、依存関係が自分のコードで直接完全に使用されていない場合にも表示されることを知りませんでした。私の場合、Facebookは私が使用していなかったいくつかのサポートライブラリを指定しています。これらの依存関係のほとんどが、-> XXX(*)記号で示される25.2.0の独自の仕様によって上書きされたことがわかります。カードビューとカスタムタブライブラリは誰もオーバーライドしなかったので、使用していなくても、自分で25.2.0を要求する必要があります。

+--- com.facebook.android:facebook-android-sdk:4.17.0
|    +--- com.android.support:support-v4:25.0.0 -> 25.2.0 (*)
|    +--- com.android.support:appcompat-v7:25.0.0 -> 25.2.0 (*)
|    +--- com.android.support:cardview-v7:25.0.0
|    |    \--- com.android.support:support-annotations:25.0.0 -> 25.2.0
|    +--- com.android.support:customtabs:25.0.0
|    |    +--- com.android.support:support-compat:25.0.0 -> 25.2.0 (*)
|    |    \--- com.android.support:support-annotations:25.0.0 -> 25.2.0
|    \--- com.parse.bolts:bolts-android:1.4.0 (*)

Gradleがすでに警告を出し、例を挙げている場合...

例には、com.android.support:animated-vector-drawable:25.1.1およびcom.android.support:mediarouter-v7:24.0.0が含まれます。

... gradle dependenciesかなり冗長になる可能性があるため、下位バージョンのgrepハイライトを投入するとさらに簡単になります。

./gradlew dependencies | grep --color -E 'com.android.support:mediarouter-v7|$'

1
あなたの説明から私は理解してXXX - > XXXを知ることが良好であることを、YYYによって上書きされていることYYY(*)の手段
マーキュリー

文字通り唯一有効な答えです。
stef

32

変数を使用する:次のようなことを行うと、すべてのライブラリで同じバージョンを確実に使用できるようになります

dependencies {

    ext {
        support_library_version = '25.2.0'
        google_play_services_version = '10.2.0'
    }

    //#####################################################################
    //          Support Library
    //#####################################################################
    compile "com.android.support:appcompat-v7:${support_library_version}"
    compile "com.android.support:palette-v7:${support_library_version}"
    compile "com.android.support:design:${support_library_version}"

    //#####################################################################
    //          Google Play Services
    //#####################################################################
    compile "com.google.android.gms:play-services-auth:${google_play_services_version}"
    compile "com.google.android.gms:play-services-ads:${google_play_services_version}"
    compile "com.google.android.gms:play-services-analytics:${google_play_services_version}"

    //#####################################################################
    //          Firebase
    //#####################################################################
    compile "com.google.firebase:firebase-core:${google_play_services_version}"
    compile "com.google.firebase:firebase-auth:${google_play_services_version}"
    compile "com.google.firebase:firebase-messaging:${google_play_services_version}"

このバージョニングを処理することをGoogleが提案する方法の詳細については、次の記事を参照してください。https//developer.android.com/studio/build/index.html#top-level


親愛なるダニエルFに感謝します。これがバージョンの混合の問題を回避する最良の方法だと思います。
Hovanes Mosoyan

2
1つだけ注意してください:上記のリンクで提案されているように、このタイプの変数はTOP LEVEL GRADLE FILEで再度定義する必要があります)
Hovanes Mosoyan 2018

25

これを追加してください:

compile 'com.android.support:mediarouter-v7:25.2.0'

Updated 新しいSDKバージョン

compile 'com.android.support:mediarouter-v7:28.0.0-alpha3'

古いライブラリに古いSDKが含まれているという問題は解決されません。
CoolMind 2018

19

同じエラーが発生している場合 appcompat

implementation 'com.android.support:appcompat-v7:27.0.1'

それを追加してdesign解決しました。

implementation 'com.android.support:appcompat-v7:27.0.1'
implementation 'com.android.support:design:27.0.1'

私にとって、追加

implementation 'de.mrmaffen:vlc-android-sdk:2.0.6'

に含まappcompat-v7:23.1.1れていた

.idea / libraries

なしでvlcappcompat一人で十分です


おかげでうまくいきましたが、「com.android.support:design:27.0.1」の役割は何ですか
Wessam El Mahdy

19

上記のすべての回答とコメントはすでにご覧になっていますが、この回答は、新しい開発者が簡単に取得できない可能性があるものをクリアするためのものです。

./gradlew -q dependency app:dependencies --configuration compile

上記の行は、間違いなく、上の行の結果から正確なポイントを取得する方法であなたの命を救うでしょう。

上記のコマンドからすべての依存関係のチャートまたはリストを取得したら、コードで取得している競合するバージョン番号を検索する必要があります。下の画像をご覧ください。

ここに画像の説明を入力してください

上の画像では、23.4.0が問題を引き起こしていることがわかりますが、これは私たちのgradleファイルで見つけることができません。したがって、このバージョン番号(23.4.0)で節約できます。この番号がある場合、上記のコマンド結果の結果でこの番号を見つけ、その依存関係を直接gradleファイルに直接インポートします。下の画像を見て、はっきりと見えるようにしてください。

com.android.support:cardview-v7:23.4.0com.android.support:customtabs:23.4.0問題引き起こしているバージョンを使用していることがはっきりとわかります。ここで、依存関係リストからこれらの行をコピーし、gradleファイルで明示的に使用しますが、更新されたバージョンのリンクを使用します

実装 "com.android.support:cardview-v7:26.1.0"実装 "com.android.support:customtabs:26.1.0"


1
ありがとうございました!Android Studioの新しいバージョンでは、コンパイルではなく実装に切り替える必要があります
Avi Parshan

はい、あなたは正しい@AviParshanコンパイルまたはapiを使用できます。API構成に表示される依存関係は、ライブラリのコンシューマに推移的に公開され、コンシューマのコンパイルクラスパスに表示されます。一方、実装構成で見つかった依存関係は、コンシューマに公開されないため、コンシューマのコンパイルクラスパスにリークしません。
anoopbryan2

./gradlew -q dependency app:dependencies --configuration implementationを使用します
Sumit

15

競合を解決する別の方法は、次のようにすべての依存関係の正しいバージョンを強制することです。

dependencies {
            configurations.all {
                resolutionStrategy.eachDependency { DependencyResolveDetails details ->
                    if (details.requested.group == 'com.android.support' && details.requested.name == 'support-v4') {
                        details.useVersion "27.0.2"
                    }
                }
    ...
    }

https://docs.gradle.org/current/userguide/customizing_dependency_resolution_behavior.html


依存関係解決ルールを維持することは困難です。バージョン番号や実装されているサポートライブラリの変更については、手動で保守する必要があります。たとえば、Android Studioは利用可能な新しいlibバージョンを強調表示しますが、これらのルールを解釈しません。
マヌエル、

12

support-v4の代わりにsupport-v13を使用する

compile 'com.android.support:support-v13:25.2.0'

this:compile 'com.android.support:recyclerview-v7:25.2.0'
Crime_Master_GoGo

上記とまったく同じエラー:->すべてのcom.android.supportライブラリは、まったく同じバージョン仕様を使用する必要がありますRecyclerview
Crime_Master_GoGo

@Googli、compileSdkVersionbuildToolsVersion、およびこれを使用した依存関係を記述してください。問題ありませんcompile 'com.android.support:appcompat-v7:25.2.0' compile 'com.android.support:design:25.2.0' compile 'com.android.support:support-v13:25.2.0' compile 'com.android.support:recyclerview-v7:25.2.0'
MehmetHanoğlu2017年

12

これらをアプリレベルの依存関係に追加する

implementation 'com.android.support:asynclayoutinflater:28.0.0'
implementation 'com.android.support:exifinterface:28.0.0'
implementation 'com.android.support:animated-vector-drawable:28.0.0'
implementation 'com.android.support:support-media-compat:28.0.0'
implementation 'com.android.support:support-v4:28.0.0'

9

私の問題はあなたの問題と似ています。ここにエラーがあります!

compile 'com.android.support:appcompat-v7:25.3.0'

すべてのcom.android.supportライブラリは、まったく同じバージョン仕様を使用する必要があります(バージョンを混在させると、ランタイムクラッシュが発生する可能性があります)。バージョン25.3.0、24.0.0が見つかりました。たとえば、「com.android.support:animated-vector-drawable:25.3.0」や「com.android.support:mediarouter-v7:24.0.0」などです。

この例を見ると、「com.android.support:animated-vector-drawable:25.3.0」と「com.android.support:mediarouter-v7:24.0.0」が含まれています

これらのコードを依存関係に追加するだけで、バージョンが同じであることを確認してください。

compile 'com.android.support:animated-vector-drawable:25.3.0'
compile 'com.android.support:mediarouter-v7:25.3.0'

9

compile 'com.google.android.gms:play-services:10.2.4'compileで追加した後も同じエラーが発生しました'com.android.support:appcompat-v7:25.3.1'

問題を追加animated-vector-drawableしてmediarouter libs修正しました。

compile 'com.google.android.gms:play-services:10.2.4'
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:animated-vector-drawable:25.3.1'
compile 'com.android.support:mediarouter-v7:25.3.1'

9

私はこれを持っていました:

dependencies {
   implementation fileTree(dir: 'libs', include: ['*.jar'])
   implementation 'com.android.support:appcompat-v7:27.1.1'
   implementation 'com.android.support:design:27.1.1'
   implementation 'com.android.support:support-v4:27.1.1'
   implementation 'com.google.firebase:firebase-auth:12.0.1'
   implementation 'com.google.firebase:firebase-firestore:12.0.1'
   implementation 'com.google.firebase:firebase-messaging:12.0.1'
   implementation 'com.google.android.gms:play-services-auth:12.0.1'
   implementation'com.facebook.android:facebook-login:[4,5)'
   implementation 'com.twitter.sdk.android:twitter:3.1.1'
   implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'
   implementation 'org.jetbrains:annotations-java5:15.0'
   implementation project(':vehiclesapi')
   testImplementation 'junit:junit:4.12'
   androidTestImplementation 'com.android.support.test:runner:1.0.1'
   androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}

このエラーが発生しました: ここに画像の説明を入力してください

解決策は簡単でした-主要な依存関係はすべて正しいので、葉は残りました-サードパーティの依存関係。犯人が見つかるまで一つずつ削除し、フェイスブックになりました!Androidサポートライブラリのバージョン27.0.2を使用しています。cardviewバージョン27.1.1を追加しようとしましたが、解決策がまだ十分に単純だったため、それでもうまくいきませんでした。

dependencies {
   implementation fileTree(dir: 'libs', include: ['*.jar'])
   implementation 'com.android.support:appcompat-v7:27.1.1'
   implementation 'com.android.support:design:27.1.1'
   implementation 'com.android.support:support-v4:27.1.1'
   implementation 'com.google.firebase:firebase-auth:12.0.1'
   implementation 'com.google.firebase:firebase-firestore:12.0.1'
   implementation 'com.google.firebase:firebase-messaging:12.0.1'
   implementation 'com.google.android.gms:play-services-auth:12.0.1'
   implementation('com.facebook.android:facebook-login:[4,5)'){
       // contains com.android.support:v7:27.0.2, included required com.android.support.*:27.1.1 modules
    exclude group: 'com.android.support'
   }
   implementation 'com.android.support:cardview-v7:27.1.1' // to replace facebook sdk's cardview-v7:27.0.2.
   implementation 'com.twitter.sdk.android:twitter:3.1.1'
   implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'
   implementation 'org.jetbrains:annotations-java5:15.0'
   implementation project(':vehiclesapi')
   testImplementation 'junit:junit:4.12'
   androidTestImplementation 'com.android.support.test:runner:1.0.1'
   androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}

9

Android Studio 3.4およびSDKバージョンを28.0.0にアップグレードした後、この問題に直面しました。以下の依存関係を適用すると、問題が解決しました。

    implementation 'com.android.support:exifinterface:28.0.0'

8

Android Studio 2.3にアップグレードした後、これら2つを使用して問題を解決しました

compile 'com.android.support:animated-vector-drawable:25.0.0'
compile 'com.android.support:mediarouter-v7:25.0.0'

8

以前に同じ問題があり、その解決策を見つけました。

別のバージョンのライブラリを追加しましたが、私のバージョンは同じsupport:appcompatです。

エラーの例:

すべてのcom.android.supportライブラリは、まったく同じバージョン仕様を使用する必要があります(バージョンを混在させると、ランタイムクラッシュが発生する可能性があります)。バージョン25.1.1、24.0.0が見つかりました。例には、com.android.support:animated-vector-drawable:25.1.1およびcom.android.support:mediarouter-v7:24.0.0が含まれます。

*解決策は、これらのライブラリのバージョンをそのようにコンパイルすることです:

compile 'com.android.support:mediarouter-v7:25.1.1'

-別のライブラリに同じ問題があり、別のバージョンでそれをコンパイルした場合 support:appcompatバージョンで

これで私の問題は解決しました。問題が解決することを願っています。

ご多幸を祈る :)


8

回答を検索して組み合わせた後、この質問の2018バージョンとそれは私のために働きました:

1)ナビゲーションタブでプロジェクトビューに変更します

2)[YourProjectName] /。idea / libraries /に移動します

3)Gradle__com_android_support_ [libraryName]で始まるすべてのファイルを削除します

例:Gradle__com_android_support_animated_vector_drawable_26_0_0.xml

4)Gradleファイルで変数を定義し、それを使用して$ {variableName}のようなバージョン番号を置き換えます

Def変数:

ext {
    support_library_version = '28.0.0' //use the version of choice
}

変数を使用:

implementation "com.android.support:cardview-v7:${support_library_version}"

グラドルの例:

dependencies {
    ext {
        support_library_version = '28.0.0' //use the version of choice
    }

    implementation fileTree(include: ['*.jar'], dir: 'libs')

    implementation "com.android.support:animated-vector-drawable:${support_library_version}"
    implementation "com.android.support:appcompat-v7:${support_library_version}"
    implementation "com.android.support:customtabs:${support_library_version}"
    implementation "com.android.support:cardview-v7:${support_library_version}"
    implementation "com.android.support:support-compat:${support_library_version}"
    implementation "com.android.support:support-v4:${support_library_version}"
    implementation "com.android.support:support-core-utils:${support_library_version}"
    implementation "com.android.support:support-core-ui:${support_library_version}"
    implementation "com.android.support:support-fragment:${support_library_version}"
    implementation "com.android.support:support-media-compat:${support_library_version}"
    implementation "com.android.support:appcompat-v7:${support_library_version}"
    implementation "com.android.support:recyclerview-v7:${support_library_version}"
    implementation "com.android.support:design:${support_library_version}"

}

1
この答えはもっと説明が必要です。読者は、gradleファイル全体をプロジェクトにコピーアンドペーストする必要があると思わせる可能性があります。拡張機能を追加した理由と、一部のサポートライブラリをgplaysvcsバージョンに設定し、その他をsupportlibバージョンに設定した理由と、一部が変更されていない理由を説明する必要があります。
jungledev '19年

8

Android Studio 3.xの新バージョンで非常にシンプル。

現在のバージョンより前のバージョンをコピーし、現在のバージョンと同じバージョン番号で明示的に追加するだけです。

バージョン27.1.1、27.1.0が見つかりました。例には、com.android.support:animated-vector-drawable:27.1.1およびcom.android.support:exifinterface:27.1.0が含まれます。

バージョンcom.android.support:exifinterface:27.1.0をコピーして、com.android.support:exifinterface:27.1.1使用している現在のバージョンと同じになるように変更し、次のようにGradleの依存関係に追加します。

implementation 'com.android.support:exifinterface:27.1.1'

注:完了したら、エディタの上部にある[ 今すぐ同期 ]をクリックすることを忘れないでください。


7

このエラーの2018年の更新では、プロジェクト構造から実装を追加します

implementation 'com.android.support:support-v13:28.0.0'

プロジェクトモード-> 外部ライブラリで問題が見つかります。私の場合、バージョン28と外部ライブラリを使用しています。 com.android.support:support-media-compat-26.0.0していますが、ここでエラーが発生しました。

実装後support v13、機能している


この実装により、赤い下線が消えました。
Truong Hieu 2018

6

24.0.0代わりにバージョンでコンパイルする他の依存関係を定義しました25.1.1。すべての依存関係バージョンをと同じに設定してください25.1.1


回答を更新しました。すべてのサポートバージョンのバージョンは同じ25.1.1です
2017

6

エラーを削除するには、gradleに次の行を追加する必要がありました

compile 'com.android.support:animated-vector-drawable:25.2.0'
compile 'com.android.support:preference-v7:25.2.0'
compile 'com.android.support:customtabs:25.2.0'
compile 'com.android.support:cardview-v7:25.2.0'

6

./gradlew tasks --allを実行し、ターゲットバージョン(25.3.1)とは異なるバージョンの依存関係を確認しました。あなたはこのようなものを得るでしょう:

app:prepareComAndroidSupportAnimatedVectorDrawable2531Library - Prepare com.android.support:animated-vector-drawable:25.3.1
app:prepareComAndroidSupportAppcompatV72531Library - Prepare com.android.support:appcompat-v7:25.3.1
app:prepareComAndroidSupportCardviewV72531Library - Prepare com.android.support:cardview-v7:25.3.1
app:prepareComAndroidSupportCustomtabs2531Library - Prepare com.android.support:customtabs:25.3.1
app:prepareComAndroidSupportDesign2531Library - Prepare com.android.support:design:25.3.1
app:prepareComAndroidSupportMediarouterV72531Library - Prepare com.android.support:mediarouter-v7:25.3.1
app:prepareComAndroidSupportPaletteV72531Library - Prepare com.android.support:palette-v7:25.3.1
app:prepareComAndroidSupportRecyclerviewV72531Library - Prepare com.android.support:recyclerview-v7:25.3.1
app:prepareComAndroidSupportSupportCompat2531Library - Prepare com.android.support:support-compat:25.3.1
app:prepareComAndroidSupportSupportCoreUi2531Library - Prepare com.android.support:support-core-ui:25.3.1
app:prepareComAndroidSupportSupportCoreUtils2531Library - Prepare com.android.support:support-core-utils:25.3.1
app:prepareComAndroidSupportSupportFragment2531Library - Prepare com.android.support:support-fragment:25.3.1
app:prepareComAndroidSupportSupportMediaCompat2531Library - Prepare com.android.support:support-media-compat:25.3.1
app:prepareComAndroidSupportSupportV42531Library - Prepare com.android.support:support-v4:25.3.1
app:prepareComAndroidSupportSupportVectorDrawable2531Library - Prepare com.android.support:support-vector-drawable:25.3.1
app:prepareComAndroidSupportTransition2531Library - Prepare com.android.support:transition:25.3.1
app:prepareComAndroidVolleyVolley100Library - Prepare com.android.volley:volley:1.0.0
app:prepareComCrashlyticsSdkAndroidAnswers1312Library - Prepare com.crashlytics.sdk.android:answers:1.3.12
app:prepareComCrashlyticsSdkAndroidBeta124Library - Prepare com.crashlytics.sdk.android:beta:1.2.4
app:prepareComCrashlyticsSdkAndroidCrashlytics267Library - Prepare com.crashlytics.sdk.android:crashlytics:2.6.7
app:prepareComCrashlyticsSdkAndroidCrashlyticsCore2316Library - Prepare com.crashlytics.sdk.android:crashlytics-core:2.3.16
app:prepareComFacebookAndroidFacebookAndroidSdk4161Library - Prepare com.facebook.android:facebook-android-sdk:4.16.1
app:prepareComGoogleAndroidGmsPlayServicesAnalytics1026Library - Prepare com.google.android.gms:play-services-analytics:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesAnalyticsImpl1026Library - Prepare com.google.android.gms:play-services-analytics-impl:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesAuth1026Library - Prepare com.google.android.gms:play-services-auth:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesAuthBase1026Library - Prepare com.google.android.gms:play-services-auth-base:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesBase1026Library - Prepare com.google.android.gms:play-services-base:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesBasement1026Library - Prepare com.google.android.gms:play-services-basement:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesCast1026Library - Prepare com.google.android.gms:play-services-cast:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesLocation1026Library - Prepare com.google.android.gms:play-services-location:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesMaps1026Library - Prepare com.google.android.gms:play-services-maps:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesTagmanagerV4Impl1026Library - Prepare com.google.android.gms:play-services-tagmanager-v4-impl:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesTasks1026Library - Prepare com.google.android.gms:play-services-tasks:10.2.6
app:prepareComGoogleFirebaseFirebaseAnalytics1026Library - Prepare com.google.firebase:firebase-analytics:10.2.6
app:prepareComGoogleFirebaseFirebaseAnalyticsImpl1026Library - Prepare com.google.firebase:firebase-analytics-impl:10.2.6
app:prepareComGoogleFirebaseFirebaseAppindexing1024Library - Prepare com.google.firebase:firebase-appindexing:10.2.4
app:prepareComGoogleFirebaseFirebaseCommon1026Library - Prepare com.google.firebase:firebase-common:10.2.6
app:prepareComGoogleFirebaseFirebaseCore1026Library - Prepare com.google.firebase:firebase-core:10.2.6
app:prepareComGoogleFirebaseFirebaseIid1026Library - Prepare com.google.firebase:firebase-iid:10.2.6
app:prepareComGoogleFirebaseFirebaseMessaging1026Library - Prepare com.google.firebase:firebase-messaging:10.2.6
app:prepareComMindorksPlaceholderview027Library - Prepare com.mindorks:placeholderview:0.2.7
app:prepareDebugAndroidTestDependencies
app:prepareDebugDependencies
app:prepareDebugUnitTestDependencies
app:prepareInfoHoang8fAndroidSegmented105Library - Prepare info.hoang8f:android-segmented:1.0.5
app:prepareIoFabricSdkAndroidFabric1316Library - Prepare io.fabric.sdk.android:fabric:1.3.16
app:prepareNoNordicsemiAndroidLog211Library - Prepare no.nordicsemi.android:log:2.1.1
app:prepareNoNordicsemiAndroidSupportV18Scanner100Library - Prepare no.nordicsemi.android.support.v18:scanner:1.0.0

この場合、私は25.3.1をターゲットとしており、このコマンドを実行したときにいくつかの依存関係が異なるバージョンをターゲットとしていました。重要なのは、このリストで以前のバージョンを対象としている依存関係を特定し、Gradleに最新バージョンの依存関係をインポートすることでそれを上書きすることです。


6

私は同じ問題を抱えていますが、3行を追加することでこれを解決しました

implementation 'com.android.support:design:27.1.1'
implementation "com.android.support:customtabs:27.1.1"
implementation 'com.android.support:mediarouter-v7:27.1.1'

今すべてが完璧に動作します


6

この警告を修正するためのフローは次のとおりです

build.gradle

android {
    compileSdkVersion ... // must same version (ex: 26)
    ...
}

dependencies {
    ...
    compile 'any com.android.support... library'  // must same version (ex: 26.0.1)
    compile 'any com.android.support... library'  // must same version (ex: 26.0.1)

    ...
    compile ('a library B which don't use 'com.android.support...' OR use SAME version of 'com.android.support'){
         // do nothing 
    }

    ...
    compile ('a library C which use DIFFERENT 'com.android.support...' (ex:27.0.1) { 
        // By default, if use don't do anything here your app will choose the higher com.android.support... for whole project (in this case it is 27.0.1)

        // If you want to use 26.0.1 use
        exclude group: 'com.android.support', module: '...' (ex module: 'appcompat-v7') 
        exclude group: 'com.android.support', module: 'another module'
        ...

        // If you want to use 27.0.1 do 
        Upgrade `compileSdkVersion` and all 'com.android.support' to 27.0.1.
        (It may be a good solution because the best practice is always use latest `compileSdkVersion`.  
        However, use 26 or 27 is base on you for example higher library may have bug)
    }
}

dependenciesアプリ内のすべてのライブラリ表示/確認するには、
ターミナルを開いて実行します./gradlew app:dependencies

dependenciesアプリ内の特定のライブラリ表示するには、こちらのチュートリアルに従ってください:- -Gradleで特定の依存関係の依存関係を除外する方法

それが役に立てば幸い


5

プロジェクトの外部ライブラリを開くと、一部のライブラリはまだ以前のバージョンを使用していることがわかりますが、それらのライブラリについて言及しなかったため、問題を解決するために特定のライブラリバージョンを使用することをお勧めします。


5

Android Support Repositoryを(リビジョン:44.0.0)に更新しました。次に、SDKマネージャーからSDK SDKツールとエミュレーターを最新バージョン25.3.1に更新し、SDKツールを使用して問題を解決しました

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.