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?

barq
sumber
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'
}
Gabriele Mariotti
sumber
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.

Sushanth Kille
sumber
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.

rexxar
sumber
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'
jingsong yang
sumber
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!

Shahbaz Ali
sumber
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'
}
Rohit Sharma
sumber
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.

Mohammed Nishar
sumber
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'
chetu
sumber
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'
}
Hanisha
sumber