Конфликт с зависимостью ' com.андроид.поддержка: поддержка-аннотации'. Разрешенные версии для приложения (23.1.0) и тестового приложения (23.0.1) отличаются
при сборке я получаю следующую ошибку:
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'
}
Как я могу это исправить?
8 ответов:
вы можете заставить библиотеку аннотаций в тесте, используя:
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' }
проект Rebuild решил мою проблему.
В Android studio на панели инструментов.. Построить>Перестроить Проект.
источник: CodePath-UI тестирование с эспрессо
- наконец, нам нужно вытащить зависимости эспрессо и установить тестовый бегун в нашей сборке приложения.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 зависимости.
вы можете попробовать использовать
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'
я получал эту ошибку
ошибка: выполнение не удалось для задачи': app: preDebugAndroidTestBuild'. Конфликт с зависимостью ' com.андроид.поддержка: поддержка-аннотации "в проекте": приложение". Разрешенные версии для приложения (26.1.0) и тестового приложения (27.1.1) отличаются. См.https://d.android.com/r/tools/test-apk-dependency-conflicts.html для деталей.
у меня были следующие зависимости в моем построить.gradle под 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' }
Итак, я решил это, комментируя следующие зависимости
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' }
надеюсь, что это помогает!
я получал ту же ошибку сегодня:
ошибка: выполнение не удалось для задачи': app: preDebugAndroidTestBuild'.> Конфликт с зависимостью ' com.андроид.поддержка: поддержка-аннотации ' in проект:приложение'. Разрешенные версии для приложения (26.1.0) и тестового приложения (27.1.1) отличаются.
что я сделал:
- я просто обновил все зависимости для
27.1.1
вместо26.1.0
- также, обновил мой
compileSdkVersion 27
иtargetSdkVersion 27
, которые были26
ранееи
com.android.support:support-annotations
ошибка пропала!Для 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' }