Konflik dengan ketergantungan 'com.android.support:support-annotations'. Versi terselesaikan untuk aplikasi (23.1.0) dan aplikasi pengujian (23.0.1) berbeda


119

Saat membangun saya mendapatkan kesalahan berikut:

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

Ini adalah ketergantungan gradle saya

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'
}

Bagaimana cara memperbaikinya?


Saya dapat memberi tahu Anda bahwa ketergantungan 23.1.0 berasal dari appcompat lib, karena itu menyertakan anotasi lib. 23.0.1 Saya tidak tahu
Tim

Juga tidak berfungsi jika saya mengalihkan appcompat kembali ke 23.0.1
barq

Saya baru saja mengganti 23.1.0 dengan 23.0.1, di mana saja dalam ketergantungan, bekerja untuk saya.
Shahzad Afridi

Tambahkan ketergantungan anotasi yang terkait dengan kesalahan versi Anda. readyandroid.wordpress.com/…
Siap Android

Atau mungkin ini membantu Anda readyandroid.wordpress.com/…
Siap Android

Jawaban:


208

Anda dapat memaksa pustaka anotasi dalam pengujian Anda menggunakan:

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

Sesuatu seperti ini:

  // 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'

Solusi lain adalah menggunakan ini di file tingkat atas:

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

8
Baris ini adalah solusinya: androidTestCompile 'com.android.support:support-annotations:23.1.0'
barq

4
Penggunaan pengaturan configurations.all berhasil untuk saya, tetapi tidak di file tingkat proyek, yang awalnya saya tafsirkan sebagai "file tingkat atas" dari respons di atas. Itu ada di file build.gradle level modul
OYRM

Apakah konflik ini awalnya disebabkan oleh Espresso?
IgorGanapolsky

resolutionStrategy.force 'com.android.support:support-annotations:23.4.0' tidak membantu saya .. masalahnya adalah EspressoContribution untuk DatePicker, DrawerActions, RecyclerView, dll .. ('com.android.support.test.espresso : espresso-contrib: 2.2.2 ') {exclude module:' support-annotations 'exclude module:' support-v4 '}
Ewoks

3
Hanya satu poin penting, untuk memperjelas bahwa Kita perlu menambahkan configurations.all {resolutionStrategy.force 'com.android.support:support-annotations:23.1.0'} di build.gradledalam modul (aplikasi) untuk memperbaiki masalah.
AAD Pemrograman

69

Project Rebuild menyelesaikan masalah saya.

Di studio Android pada toolbar .. Build> Rebuild Project.


25

Sumber: CodePath - Pengujian UI Dengan Espresso

  1. Terakhir, kita perlu menarik dependensi Espresso dan menyetel runner pengujian di app 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'
    }
}

Saya telah menambahkannya ke file gradle saya dan peringatan itu menghilang.

Selain itu, jika Anda mendapatkan dependensi lain yang terdaftar sebagai konflik, seperti support-annotation, coba kecualikan juga dari dependensi androidTestCompile.


1
tidak termasuk kompilasi androidtest individual yang berfungsi untuk saya
Nantha kumar

12

Anda bisa mencoba menggunakan

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

dari pada

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

Saya mendapatkan kesalahan ini

Kesalahan: Eksekusi gagal untuk tugas ': app: preDebugAndroidTestBuild'. Konflik dengan ketergantungan 'com.android.support:support-annotations' in project ': app'. Versi terselesaikan untuk aplikasi (26.1.0) dan aplikasi pengujian (27.1.1) berbeda. Lihat https://d.android.com/r/tools/test-apk-dependency-conflicts.html untuk detailnya.

Saya mengalami dependensi berikut dalam file build.gradle saya di bawah Gradle Scripts

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'
}

Jadi, saya menyelesaikannya dengan mengomentari dependensi berikut

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'

Jadi ketergantungan saya terlihat seperti ini

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'
}

Semoga membantu!


1
Jadi Anda menghapus pustaka pengujian? Ini tidak terlalu membantu jika Anda membutuhkan pustaka tersebut.
Celana

4

Saya mendapatkan kesalahan yang sama hari ini:

Kesalahan: Eksekusi gagal untuk tugas ': app: preDebugAndroidTestBuild'.> Konflik dengan ketergantungan 'com.android.support:support-annotations' in project ': app'. Versi terselesaikan untuk aplikasi (26.1.0) dan aplikasi pengujian (27.1.1) berbeda.

Apa yang saya lakukan:

  • Aku hanya diperbarui semua dependensi saya untuk 27.1.1bukannya26.1.0
  • Juga, memperbarui saya compileSdkVersion 27dan targetSdkVersion 27yang 26sebelumnya

Dan com.android.support:support-annotationskesalahan telah hilang!

Untuk Ref:

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

Dalam kasus saya, saya menambahkan kode di bawah ini dalam dependensi build.gradle level aplikasi

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

Setelah itu, saya membersihkan proyek dan membangun kembali. Masalah saya terpecahkan.


0

Ubah file build.gradle level aplikasi Anda:

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

untuk

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

0

Coba ini :

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'
}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.