[解決済み] com.android.supportのライブラリは全て全く同じバージョン表記である必要があります。
質問事項
android studio 2.3にアップデートしたら、このエラーメッセージが表示されました。 アプリは正常に動作しているので、単なるヒントだとは思うのですが、本当に不思議です。
com.android.support ライブラリは、すべて完全に同じバージョン仕様を使用する必要があります(バージョンが混在するとランタイムクラッシュにつながる可能性があります)。例えば、com.android.support:animate-vector-drawable:25.1.1 や com.android.support:mediarouter-v7:24.0.0 があります。
私のgradleです。
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'
}
解決方法は?
以下のいずれかの方法で解決することができます。
更新する。
Android Studio 3.0では、より親切なヒントが表示されるようになったので、このヒントに従うだけで、より簡単にできるようになりました。
例えば
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"
ie: 2番目の項目からライブラリを取り出し、1番目の項目からバージョン番号を指定して実装します。
注意: 今すぐsyncを押して、gradleが依存関係グラフを再構築し、さらに競合があるかどうかを確認することを忘れないでください。
説明します。
を使用しないため、エラーメッセージに戸惑うかもしれません。
customtabs
というわけで、どうやったらコンフリクトするんだ!
直接は使っていませんが、ライブラリのひとつが古いバージョンの
customtabs
を内部で使っているので、直接お願いする必要があります。
もし、どのライブラリが古いバージョンに対応しているかを知り、作者にライブラリの更新を依頼したい場合は、Gradleの依存性レポートを実行する必要があります。
注意事項
古い回答です。
インスパイアード コモンズウェアの回答 :
Gradleの依存性レポートを実行し、あなたの完全なツリーを確認します。 の依存関係があります。
そこから、どのライブラリが異なるバージョンのAndroid Supportライブラリを要求しているかがわかります。 要求しているものが何であれ、あなたはそれを直接 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.0
と
com.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プラグインでより良い方法を知っている人がいたら教えてください。
関連
-
[解決済み] ユーザーが拒否する可能性のあるパーミッションが必要なコール
-
[解決済み】Android Studio AVD - Emulator: 終了コード 1 でプロセスが終了
-
[解決済み】リストビューにonclicklistenerを追加する(android)
-
[解決済み】ビットマップを保存する場所について
-
[解決済み】ビューのルートとしてNULLを渡さないようにする(膨張したレイアウトのルート要素でレイアウトパラメータを解決する必要がある)。
-
[解決済み】アクティビティにない場所でのgetLayoutInflater()の呼び出し
-
[解決済み] コンパイルした.apkを端末にインストールしようとするとINSTALL_FAILED_UPDATE_INCOMPATIBLEが表示される
-
[解決済み] Looper.prepare()を呼び出していないスレッドではハンドラを作成できない
-
[解決済み] 起動アクティビティを特定できませんでした。デフォルトのアクティビティが見つかりませんでした
-
[解決済み] sendUserActionEvent() は null です。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] シンボル 'context' を解決できない
-
[解決済み】react-native: コマンドが見つかりません。
-
[解決済み】Android Studioです。「プロジェクトが C ドライブに作成されている場合、「タスク ':app:mergeDebugResources' の実行に失敗しました。
-
[解決済み】レンダリングの問題 レンダリング中に発生した例外:com/android/util/PropertiesMap [重複].
-
[解決済み】sendUserActionEvent()がnullである。
-
[解決済み】フラグメントMyFragmentがアクティビティにアタッチされない。
-
[解決済み] SDKの場所がandroid studioで見つからない
-
[解決済み] Gradle DSL メソッドが見つかりません:'compile()'
-
[解決済み] android.intent.action.MAINの意味は何ですか?
-
[解決済み] Android M パーミッション : shouldShowRequestPermissionRationale()関数の使用方法について混乱しています。