依存関係「com.android.support:support-annotations」と競合しています。アプリ(23.1.0)とテストアプリ(23.0.1)の解決済みバージョンが異なる


119

ビルドすると、次のエラーが発生します。

Conflict with dependency 'com.android.support:support-annotations'. Resolved versions for app (23.1.0) and test app (23.0.1) differ.

これらは私のgradleの依存関係です

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:support-v4:23.1.0'
    compile 'com.android.support:appcompat-v7:23.1.0'
    compile 'com.android.support:design:23.1.0'
    compile 'com.android.support:cardview-v7:23.1.0'
    compile 'com.android.support:recyclerview-v7:23.1.0'
    compile 'com.squareup.retrofit:retrofit:1.9.0'
    compile 'com.squareup.okhttp:okhttp:2.4.0'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.jakewharton:butterknife:7.0.1'
    compile 'com.squareup:otto:1.3.8'
    compile 'com.snappydb:snappydb-lib:0.5.2'
    compile 'com.esotericsoftware.kryo:kryo:2.24.0'
    compile 'com.google.dagger:dagger:2.0.1'
    apt 'com.google.dagger:dagger-compiler:2.0.1'
    compile 'javax.annotation:javax.annotation-api:1.2'
    compile 'io.reactivex:rxandroid:1.0.1'
    compile 'io.reactivex:rxjava:1.0.14'
    compile 'com.google.android.gms:play-services-location:8.1.0'
    compile 'com.google.android.gms:play-services-gcm:8.1.0'
    compile 'org.apache.commons:commons-lang3:3.4'
    testCompile 'junit:junit:4.12'
    testCompile 'org.hamcrest:hamcrest-library:1.3'
    testCompile 'org.mockito:mockito-core:1.10.19'
    androidTestCompile 'com.android.support.test:runner:0.4'
    androidTestCompile 'com.android.support.test:rules:0.4'
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
    androidTestCompile 'com.android.support.test.espresso:espresso-intents:2.2.1'
    androidTestCompile 'com.android.support.test.espresso:espresso-web:2.2.1'
    debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3.1'
    releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3.1'
}

どうすれば修正できますか?


23.1.0の依存関係はappcompat libからのものであると言えます。これには、アノテーションlibが含まれているためです。知らない23.0.1
Tim

appcompatを23.0.1に戻しても機能しません
barq

私は23.1.0を23.0.1に置き換えました。
Shahzad Afridi

バージョンエラーに関連するアノテーション依存関係を追加します。readyandroid.wordpress.com/...
レディAndroidの

それともこのヘルプあなたは可能性があるreadyandroid.wordpress.com/...
レディAndroidの

回答:


208

以下を使用して、注釈ライブラリをテストに強制できます。

androidTestCompile 'com.android.support:support-annotations:23.1.0'

このようなもの:

  // Force usage of support annotations in the test app, since it is internally used by the runner module.
  androidTestCompile 'com.android.support:support-annotations:23.1.0'
  androidTestCompile 'com.android.support.test:runner:0.4.1'
  androidTestCompile 'com.android.support.test:rules:0.4.1'
  androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
  androidTestCompile 'com.android.support.test.espresso:espresso-intents:2.2.1'
  androidTestCompile 'com.android.support.test.espresso:espresso-web:2.2.1'

別の解決策は、これを最上位ファイルで使用することです。

configurations.all {
    resolutionStrategy.force 'com.android.support:support-annotations:23.1.0'
}

8
この行はソリューションでした:androidTestCompile 'com.android.support:support-annotations:23.1.0'
barq

4
私はConfigurations.all設定の使用はうまくいきましたが、プロジェクトレベルのファイルではうまくいきませんでした。これは、上記の応答から最初に「トップレベルのファイル」として解釈したものです。これはモジュールレベルのbuild.gradleファイルにありました
OYRM '18

この競合はもともとエスプレッソが原因ですか?
IgorGanapolsky 2016年

resolutionStrategy.force 'com.android.support:support-annotations:23.4.0'は役に立ちません。問題は、DatePicker、DrawerActions、RecyclerViewなどのEspressoContributionです。( 'com.android.support.test.espresso :espresso-contrib:2.2.2 '){exclude module:' support-annotations 'exclude module:' support-v4 '}
Ewoks

3
問題を修正するためbuild.gradleに、モジュール(アプリ)内にconfiguration.all {resolutionStrategy.force 'com.android.support:support-annotations:23.1.0'}を追加する必要があることを明確にするために、重要なポイントの1つにすぎません。
AADProgramming

69

プロジェクトの再構築で問題は解決しました。

ツールバーのAndroid Studioで。ビルド>プロジェクトの再構築。


25

ソース:CodePath-EspressoによるUIテスト

  1. 最後に、Espressoの依存関係を取り込み、アプリのbuild.gradleにテストランナーを設定する必要があります。
// build.gradle
...
android {
    ...
    defaultConfig {
        ...
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
}

dependencies {
    ...
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2') {
        // Necessary if your app targets Marshmallow (since Espresso
        // hasn't moved to Marshmallow yet)
        exclude group: 'com.android.support', module: 'support-annotations'
    }
    androidTestCompile('com.android.support.test:runner:0.5') {
        // Necessary if your app targets Marshmallow (since the test runner
        // hasn't moved to Marshmallow yet)
        exclude group: 'com.android.support', module: 'support-annotations'
    }
}

私はそれをgradleファイルに追加し、警告は消えました。

また、support-annotationsなど、競合するものとしてリストされている他の依存関係を取得した場合は、androidTestCompile依存関係からも除外してみてください。


1
個別のandroidtestcompileを除いて私のために動作します
Nantha kumar

12

あなたは使うことを試みることができます

  androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
})

の代わりに

androidTestCompile 'com.android.support.test:runner:0.4.1'

androidTestCompile 'com.android.support.test:rules:0.4.1'

androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
androidTestCompile 'com.android.support.test.espresso:espresso-contrib:2.2.1'

6

このエラーが発生しました

エラー:タスク ':app:preDebugAndroidTestBuild'の実行に失敗しました。プロジェクト ':app'の依存関係 'com.android.support:support-annotations'と競合しています。アプリ(26.1.0)とテストアプリ(27.1.1)の解決済みバージョンは異なります。詳細については、https://d.android.com/r/tools/test-apk-dependency-conflicts.htmlを参照してください。

Gradle Scriptsの下のbuild.gradleファイルに次の依存関係がありました

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support:support-v4:26.1.0'
implementation 'com.android.support:support-vector-drawable:26.1.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

だから、私は次の依存関係にコメントすることで解決しました

testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

だから私の依存関係はこのようになります

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support:support-v4:26.1.0'
implementation 'com.android.support:support-vector-drawable:26.1.0'
//testImplementation 'junit:junit:4.12'
//androidTestImplementation 'com.android.support.test:runner:1.0.2'
//androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

それが役に立てば幸い!


1
テストライブラリを削除しましたか?これらのライブラリが必要な場合、これはあまり役に立ちません。
パンツ

4

今日も同じエラーが発生しました:

エラー:タスク ':app:preDebugAndroidTestBuild'の実行に失敗しました。>プロジェクト ':app'の依存関係 'com.android.support:support-annotations'と競合しています。アプリ(26.1.0)とテストアプリ(27.1.1)の解決済みバージョンは異なります。

私がしたこと:

  • すべての依存関係を単にの27.1.1代わりにに更新しました26.1.0
  • また、私を更新compileSdkVersion 27し、targetSdkVersion 27そのうち26それ以前

そしてcom.android.support:support-annotationsエラーはなくなった!

参照の場合:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    implementation 'com.android.support:design:27.1.1'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

1

私の場合、アプリレベルのbuild.gradleの依存関係に以下のコードを追加しました

androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
})

その後、プロジェクトをクリーンアップして再構築しました。問題は解決しました。


0

アプリケーションレベルのbuild.gradleファイルを変更します。

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

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

0

これを試して :

apply plugin: 'com.android.application'

android {
compileSdkVersion 27
defaultConfig {
    applicationId "com.example.yourpackagename"
    minSdkVersion 15
    targetSdkVersion 27
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.