Разрешенные версии для приложения (22.0.0) и тестового приложения (21.0.3) отличаются
после обновления до API 22 и поддержки lib revision 22 я получаю следующее предупреждение:
предупреждение:конфликт с зависимостью
- com.андроид.поддержка: поддержка-аннотации'. Разрешенные версии для приложения
(22.0.0) и тестовое приложение (21.0.3) отличаются.
сам Gradle более прощающий, но Android Studio, не так много.
у меня нет зависимостей, объявленных с 21.0.3 ... является ли одна из зависимых библиотек, использующих 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'
}
обновление: (Спасибо!)
похоже, что это эспрессо-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 (*)
10 ответов:
Шаг #1 при работе с такого рода вещи, чтобы получить удобный с командной строки Gradle.
Шаг №2-это запустить отчет о зависимостях Gradle (например,
gradle -q app:dependenciesиз корня проекта). Это обеспечит дерево ASCII, как показано в обновлении к вопросу, и это должно помочь вам определить, что запрашивает конфликтующие версии артефактов.Шаг № 3-решить, что нуждается в замене. Вы решили заменить просто конфликт (
support-annotations). Лично я бы пошел с корнем дерева неправильной версии (recyclerview-v7), хотя, насколько я знаю, это может быть не лучший курс действий в этом случае.Шаг № 4-Добавить
то, что я сделал, чтобы решить это, было добавить нижеприведенную строку в мою сборку.gradle script
androidTestCompile 'com.android.support:support-annotations:xx.x.x'заменить
xx.x.xС любой версией support-annotations, которую использует ваше приложение , это будет показано в ваших зависимостях или сообщении синхронизации Gradle как:Resolved version for app (xx.x.x)если возникнут проблемы с синхронизацией.
на самом деле это ошибка новой версии обновления Espresso Contrib, вы можете обратиться к этому обходному пути : android-тестирование / сборка.gradle
configurations.all { resolutionStrategy.force 'com.android.support:support-annotations:22.1.0' }
пожалуйста, обратитесь https://github.com/JakeWharton/u2020/blob/05a57bf43b9b61f16d32cbe8717af77cd608b0fb/build.gradle#L136-L140
configurations.all { resolutionStrategy { force 'com.android.support:support-annotations:23.1.1' } }это решило мою проблему.
в качестве альтернативы вы можете запустить gradlew на windows И./ gradlew для mac / linux это загрузит вашу зависимость, когда это необходимо
Я также столкнулся с этой проблемой, а также с другими конфликтами, связанными с appcompat и решение, которое я нашел, добавляло тестовые компиляторы и устанавливало их в sdk, который вы сейчас используете. В моем случае это 25, так что это выглядит так:
androidTestCompile 'com.android.support:support-annotations:25.+' androidTestCompile 'com.android.support:appcompat-v7:25.+' androidTestCompile 'com.android.support:support-v4:25.+' androidTestCompile 'com.android.support:recyclerview-v7:25.+' androidTestCompile 'com.android.support:design:25.+'кроме того, как вы можете видеть, я добавил зависимость дизайна, которая связана с дизайном материалов Android.
надеюсь, что это помогает =)
вы можете запустить gradlew на windows И./ gradlew для mac / linux это загрузит вашу зависимость, когда это необходимо.
вы можете проверить, имеет ли одна из библиотек зависимость от аннотации поддержки или любая библиотека с именем по ошибке и попытаться исключить ее в gradle что-то вроде ниже
compile ("org.апаш.maven:maven-ant-задачи:${mavenAntTaskVer}") { исключить группу: 'junit' }
ошибка: конфликт с зависимостью 'junit: junit'. Разрешенные версии для приложение (3.8.1) и тестовое приложение (4.12) отличаются. См. g.co/androidstudio/app-test-app-conflict для деталей.
Это была ошибка, которую я получал, поэтому я использовал выше gradle line, чтобы исправить проблему
просто удалите эти строки в вашей сборке.файл gradle:
androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
Это распространенная проблема в испытательном оборудовании как заявил здесь и может быть решена просто путем добавления зависимостей для androidTestCompile внутри сборки.градля. В моем случае конфликт возник в зависимостях appcompat, recyclerview и design. И решается путем добавления следующих строк
androidTestCompile 'com.android.support:appcompat-v7:23.4.0' androidTestCompile 'com.android.support:recyclerview-v7:23.4.0' androidTestCompile 'com.android.support:design:23.4.0'
У меня была та же проблема с 26.0.0 и 27.1.1 и на самом деле просто обновление первого до более позднего сделать его работу.
Comments