[解決済み] アプリ(22.0.0)とテストアプリ(21.0.3)で解決済みバージョンが異なる
質問
API 22とサポートリブリビジョン22にアップグレードした後、以下の警告が表示されます。
Warning:Conflict with dependency 'com.android.support:support-annotations'. アプリの解決済みバージョン (22.0.0) とテストアプリ (21.0.3) で異なる。
Gradle自体はもっと寛容ですが、Android Studioはそうでもありません。
私は21.0.3で宣言された依存関係を持っていません... 依存ライブラリの1つは21.0.3を使用しており、Googleは残りのバッチでそれを更新し忘れているのでしょうか?
私の
build.gradle
余分な部分を切り取った状態
android {
compileSdkVersion 22
buildToolsVersion '22'
defaultConfig {
applicationId "com.REDACTED.android"
minSdkVersion 14
targetSdkVersion 22
renderscriptSupportModeEnabled true
versionName '1.0.0'
versionCode 100
}
buildTypes {
release {
minifyEnabled true
zipAlignEnabled true
signingConfig signingConfigs.release
}
debug {
minifyEnabled false
zipAlignEnabled true
signingConfig signingConfigs.debug
}
}
dependencies {
provided 'org.projectlombok:lombok:1.16.2'
googleCompile 'com.google.android.gms:play-services-base:6.5.87'
compile 'com.android.support:support-v4:22.0.0'
compile 'com.android.support:appcompat-v7:22.0.0'
compile 'com.android.support:support-v13:22.0.0'
compile 'com.android.support:cardview-v7:22.0.0'
compile 'com.android.support:palette-v7:22.0.0'
compile 'com.android.support:support-annotations:22.0.0'
compile 'com.github.chrisbanes.photoview:library:1.2.3'
compile 'org.apache.commons:commons-lang3:3.3.2'
compile 'commons-io:commons-io:2.4'
compile 'commons-codec:commons-codec:1.10'
compile 'com.jakewharton:butterknife:6.1.0'
compile 'com.jakewharton:disklrucache:2.0.2'
compile 'com.squareup:otto:1.3.6'
compile 'com.squareup.picasso:picasso:2.5.0'
compile 'com.squareup.retrofit:retrofit:1.9.0'
compile 'com.squareup.okhttp:okhttp:2.2.0'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.0'
compile 'com.squareup.okio:okio:1.2.0'
compile 'com.flaviofaria:kenburnsview:1.0.6'
compile 'com.edmodo:cropper:1.0.1'
compile 'com.getbase:floatingactionbutton:1.8.0'
compile 'com.nispok:snackbar:2.10.2'
compile 'com.github.ksoichiro:android-observablescrollview:1.5.0'
compile 'in.srain.cube:grid-view-with-header-footer:1.0.9'
compile 'de.hdodenhof:circleimageview:1.2.2'
compile fileTree(dir: 'libs', include: '*.jar')
// Test Only Dependencies
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.0'
androidTestCompile 'com.android.support.test:testing-support-lib:0.1'
androidTestCompile 'com.android.support.test.espresso:espresso-contrib:2.0'
}
更新しました。 (マークさんありがとうございます)
espresso-contribのようです。
+--- com.android.support.test:testing-support-lib:0.1 (*)
\--- com.android.support.test.espresso:espresso-contrib:2.0
+--- com.android.support:recyclerview-v7:21.0.3
| +--- com.android.support:support-annotations:21.0.3
| \--- com.android.support:support-v4:21.0.3
| \--- com.android.support:support-annotations:21.0.3
+--- com.android.support:support-v4:21.0.3 (*)
\--- com.android.support.test.espresso:espresso-core:2.0 (*)
解決方法は?
このようなことに対処する際のステップ#1は、コマンドラインのGradleに慣れることです。
ステップ2は
Gradleの依存性レポート
(例,
gradle -q app:dependencies
プロジェクトルートから)。これは、質問に対する更新で示されるようなASCIIツリーを提供し、競合するアーティファクトのバージョンを要求しているものを特定するのに役立つはずです。
ステップ3は、何を置き換える必要があるかを決定することです。あなたは競合するものだけを置き換えることを選択しました (
support-annotations
). 個人的には、間違ったバージョンツリーのルート(
recyclerview-v7
しかし、この場合、それが最善の方法でないことは分かっています。
ステップ4は
exclude
ディレクティブを使用して、ステップ3で選択したものをブロックします。
androidTestCompile ('com.android.support.test.espresso:espresso-contrib:2.0') {
exclude module: 'support-annotations'
}
ステップ5では、この変更の徹底的なテストを行います。あなたがやっているのは、次のようなことです。
espresso-contrib
があります。
の22.0.0版に対応するためです。
support-annotations
. それはうまくいくかもしれません。そうでない場合もあります。それは競合の後方互換性に依存します。この場合
support-annotations
は、かなりいい加減なはずです。
ステップ⑥は、自分の住んでいる地域や時間帯に合った飲み物を摂取することです。
関連
-
adb devices OffLine Solution(オフラインソリューション
-
Android端末にADBが接続できない!を解決。理由: デバイスが認証されていない!
-
AndroidエミュレーターのADBサーバーがACKしない問題
-
gitlab 設定エラー。リモートリポジトリから読み込めなかったか、ホストキーの検証に失敗しました。
-
android:EMSのプロパティ
-
最新のandroidプロジェクトディレクトリにあるarmeabi-v7aとarmeabiの具体的な意味とその違いを教えてください。
-
アンドロイドスタジオでJunitのエラー問題を解決する
-
JVMのエラーに遭遇しました。Java Runtime Environmentによって致命的なエラーが検出されました。
-
Android ProgressBarのスタイルカラーを変更する
-
Android--shape--描画のコーナー、グラデーション、パディング、サイズ、ソリッド、ストロークのプロパティを指定する。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
AAPT2エラーについて:詳しくはログをご確認ください。
-
armeabi-v7a armeabi arm64-v8a パラメータの意味説明
-
Gradle のエラーです。gradle-core.jar (com.android.tools.build:gradle-core:x.x.x) を見つけられませんでした。
-
telnet'が内部コマンドまたは外部コマンドとして認識されない 解決方法
-
view.getRootView()の本当の意味とテストについて
-
Androidの美しいSeekBarスタイルのカスタマイズ
-
アンドロイドシェイプ、グラデーション、角丸、ボーダーラインの設定
-
超シンプルなアンドロイドのタイムディレイ機能
-
アンドロイドの遅延実行のいくつかの方法
-
Android.support.v7.widget.Toolbar が見つかりませんでした。