Разрешенные версии для приложения (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 (*)
545   10  

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.

надеюсь, что это помогает =)

для sdkversion 25

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

вы можете запустить 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

    Ничего не найдено.