Конфлікт із залежністю 'com.android.support:support-annotations' в проекті: app '. Вирішені версії для програми (26.1.0) та тестової програми (27.1.1) відрізняються.


106

Я новачок у розробці додатків для Android. Коли я намагався створити новий проект, Android Project ... з'явилося таке повідомлення ..

Помилка: Не вдалося виконати завдання ": app: preDebugAndroidTestBuild".

Конфлікт із залежністю 'com.android.support:support-annotations' в проекті: app '. Вирішені версії для програми (26.1.0) та тестової програми (27.1.1) відрізняються. Докладніше дивіться на https://d.android.com/r/tools/test-apk-dependency-conflicts.html . Інформація: завдання Gradle [: app: generatedDebugSources,: app: generatorDebugAndroidTestSources,: app: mockableAndroidJar]

Це скріншот мого проекту, натисніть тут, щоб побачити скріншот помилки, яку я отримав

Я також спробував додати цей код до моєї залежності .. androidTestCompile 'com.android.support:support-annotations:23.3.0' це не вийшло. Я також спробував 27.1.1 і 26.1.0 .. це теж не вийшло.


Перевірте це питання: stackoverflow.com/q/43817004/9611523 . Сподіваюся, це допоможе.

1
Оновлення Android Studio (а також емулятор та деякі інші речі після цього) вирішило цю проблему для мене.

Проблема пов’язана з градуюванням анотацій, який не за замовчуванням створюється в новому проекті Android Studio. Можливо, це допоможе вам: readyandroid.wordpress.com/…
готовий Android

Відповіді:


182

На основі екрана я знайшов два робочих рішення:

Перше рішення : додайте до залежностей вашого модуля gradle цей рядок

compile 'com.android.support:support-annotations:27.1.1'

і синхронізувати ваш проект

Примітка. Якщо ви використовуєте Android Studio 3+, змініть compileнаimplementation

Друге рішення : Налаштування властивостей проекту, знайдених у документації https://developer.android.com/studio/build/gradle-tips.html#configure-project-wide-properties

у gradle проекту додати цей рядок:

// This block encapsulates custom properties and makes them available to all
// modules in the project.
ext {
    // The following are only a few examples of the types of properties you can define.
    compileSdkVersion = 26
    // You can also use this to specify versions for dependencies. Having consistent
    // versions between modules can avoid behavior conflicts.
    supportLibVersion = "27.1.1"
}

Потім, щоб отримати доступ до цього розділу, слід змінити compileSdkVersionлінію

compileSdkVersion rootProject.ext.compileSdkVersion

а в dependenciesрозділі змініть імпортовану бібліотеку таким чином:

compile "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"

і синхронізувати ваш проект

Примітка. Якщо ви використовуєте Android Studio 3+, змініть compileнаimplementation

Для різниці між compileта implementationподивіться на те, у чому різниця між реалізацією та компілюванням у gradle


4
Я б запропонував використати 'імплементацію' замість компіляції
SanVed

60

Додайте нижній рядок у файл app.gradle перед блоком залежностей.

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

Нижче також є знімок екрана для кращого розуміння.

Конфігурації.всі блоки

  1. блок configurations.all буде корисним лише в тому випадку, якщо ви бажаєте, щоб ваш цільовий sdk був 26. Якщо ви зможете змінити його на 27, помилка буде втрачена без додавання блоку налаштування у файл app.gradle.

  2. Є ще один спосіб, якщо ви видалите всю тестову реалізацію з файлу app.gradle, це дозволить усунути помилку, і в цьому також вам не потрібно додавати конфігураційний блок і не потрібно змінювати версію targetdk.

Сподіваюся, що це допомагає.


Дякую, заощаджуй мій час
Manikandan K

1
@ManikandanK із задоволенням допоможемо!
Суворий Джайн

Хваліть вас за надання повних інструкцій! (Стільки відповідей на цю тему подібно до "Додати це:" сила "com.android.support:support-annotations:26.1.0" "з мало / без контексту! (На жаль, проте я все одно отримую те саме помилка збірки, в моєму випадку "не вдалося знайти com.android.support:support-annotations:27.0.0 Обов'язково по: trainingiq: bugsnag реагують рідний: енну> com.bugsnag: bugsnag-андроїда :. 4.3.1"
Дронз

35

Якщо ви використовуєте версію 26, то версія всередині залежностей повинна бути 1.0.1 і 3.0.1, тобто наступним чином

  androidTestImplementation 'com.android.support.test:runner:1.0.1'
  androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'

Якщо ви користуєтеся версією 27, то версія всередині залежностей повинна бути 1.0.2 та 3.0.2, тобто наступним чином

  androidTestImplementation 'com.android.support.test:runner:1.0.2'
  androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

2
Нехай Бог благословить вас, нехай андроїд підтримує бібліотеки з версією гнилі в пеклі!
Мухаммед Надері

Так майстер студії Android створює проект з нуля З помилками? ¬¬
Себастьян Брейт

Що з 28 ?
alizulfuqar

27

Якщо ви використовуєте Android Studio 3.1. + Або вище

просто покладіть це на ступінь своєї ступеня:

implementation 'com.android.support:support-annotations:27.1.1'

Загалом так:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.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'

    implementation 'com.android.support:support-annotations:27.1.1'
}

Дякую приятелю. Багато кохання
amilab

23

Це пов’язано з конфліктом версій, щоб його вирішити, просто змусити оновити версію підтримки-примітки, додавши цей рядок у своєму модулі: app gradle

implementation ('com.android.support:support-annotations:27.1.1')

Сподіваюся, це вирішить вашу проблему;)

Редагувати

Майже забувши, ви можете оголосити одну додаткову властивість ( https://docs.gradle.org/current/userguide/writing_build_scripts.html#sec:extra_properties ) для версії, перейти до свого проекту (або верхнього) файлу gradle та заявіть про свою підтримку або просто для цього прикладу, версія анотації var

ext.annotation_version = "27.1.1"

Потім у модулі Gradle замініть його на:

implementation ("com.android.support:support-annotations:$annotation_version")

Це дуже схоже на рішення @emadabel, що є хорошою альтернативою для цього, але без блоку чи rootprojectпрефікса.


1
Спасибі desgraci, вищевказане рішення допомогло мені
BharathRao

після додавання цього рядка тепер я отримую помилку «Помилка: Неможливо завершити виконання завдання для": додаток: processDebugManifest "> Manifest злиття не вдалося з декількома помилками, див журнали» , будь ласка , допоможіть мені , як я можу вирішити
Басант

@Basant, мені потрібно було б побачити, в чому полягає проблема, оскільки це проблема виконання вашого gradle, краще було б відкрити питання для цього
desgraci

Вибачте за пізню відповідь @desgraci, я скоротив цю проблему, оновивши IDE
Basant

@Basant рада це почути!
desgraci

9

Додавання цього в build.gradle (додаток Модуль) працювало на мене:
компілюйте 'com.android.support:support-annotations:27.1.1'


7

Не хвилюйтесь Це просто:

Перейдіть до структури каталогів «Проект» і перейдіть до «Сценарії Gradle», а всередині перейдіть до «build.gradle (Модуль: додаток)» та двічі клацніть по ній.

Тепер - Прокрутіть програму вниз і перейдіть до розділу залежностей: Як і нижче


залежності {

implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.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'

}


Тепер у цьому Видаліть останні два рядки коду та відновіть додаток, і тепер воно буде працювати

Залежності повинні бути:


залежності {

implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
testImplementation 'junit:junit:4.12'

}


ПОВЕРНУТИСЯ ДОПОМОГУ ТА РОБОТИ !!


Ви не пояснили, що ви видалили / додали. Що робити, якщо тут потрібні бібліотеки тестів?
TheRealChx101

3

Перейдіть до build.gradle (додаток модуля) у своєму проекті:

введіть тут опис зображення

Дотримуйтесь зображення та змініть цю версію:

compileSdkVersion: 27
targetSdkVersion: 27

і якщо android studio version 2: Змініть рядок за допомогою цього рядка:

compile 'com.android.support:appcompat-v7:27.1.1'

інакше Змініть рядок за допомогою цього рядка:

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

і, сподіваємось, ви вирішите свою помилку.


2

Додайте це до файлу gradle.

implementation 'com.android.support:support-annotations:27.1.1'

1

Ще один простий спосіб вирішити цю проблему - це редагувати build.gradle(додаток):

  1. Перейдіть до androidтегу та змініть compileSdkVersion 26наcompileSdkVersion 27
  2. Перейдіть до defaultConfigтегу та змініть targetSdkVersion 26наtargetSdkVersion 27
  3. Перейти до dependenciesтегу та змінити implementation 'com.android.support:appcompat-v7:26.1.0'наimplementation 'com.android.support:appcompat-v7:27.1.1'

1

У мене така ж проблема: у build.gradle (Модуль: додаток) додайте наступний рядок коду всередині залежностей:

dependencies 
{
   ...
   compile 'com.android.support:support-annotations:27.1.1'
}

Це працювало для мене чудово


1

Важливе оновлення

Перейдіть на рівень проекту build.gradle, визначте глобальні змінні

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext.kotlinVersion = '1.2.61'

    ext.global_minSdkVersion = 16
    ext.global_targetSdkVersion = 28
    ext.global_buildToolsVersion = '28.0.1'
    ext.global_supportLibVersion = '27.1.1'
}

Перейдіть на додаток build.gradle та використовуйте глобальні змінні

додаток build.gradle

android {
    compileSdkVersion global_targetSdkVersion
    buildToolsVersion global_buildToolsVersion
    defaultConfig {
        minSdkVersion global_minSdkVersion
        targetSdkVersion global_targetSdkVersion
}
...

dependencies {
    implementation "com.android.support:appcompat-v7:$global_supportLibVersion"
    implementation "com.android.support:recyclerview-v7:$global_supportLibVersion"
    // and so on...
}

деяка бібліотека build.gradle

android {
    compileSdkVersion global_targetSdkVersion
    buildToolsVersion global_buildToolsVersion
    defaultConfig {
        minSdkVersion global_minSdkVersion
        targetSdkVersion global_targetSdkVersion
}
...

dependencies {
    implementation "com.android.support:appcompat-v7:$global_supportLibVersion"
    implementation "com.android.support:recyclerview-v7:$global_supportLibVersion"
    // and so on...
}

Рішення полягає в тому, щоб зробити ваші версії такими ж, як і у всіх модулях. Так що у вас немає конфліктів.

Важливі поради

Я відчував, коли я оновлював версії всичко- gradle, sdks, бібліотеки тощо, тоді я стикаюся з меншими помилками. Оскільки розробники наполегливо працюють над тим, щоб спростити розробку в Android Studio.

Завжди остання , але стабільні версії нестабільні версії alpha, betaі rc, ігнорувати їх у розвитку.

Я оновив усе нижче в своїх проектах, і більше не стикаюся з цими помилками.

Щасливого кодування! :)


0

Якщо зміна цільової версії sdk не допомагає, тоді, якщо у вас є залежність від версії, 3.0.2змініть її на 3.0.1.

наприклад змінити

androidTestImplementation 'com.android.support.test.espresso:espresso-contrib:3.0.2'

до

androidTestImplementation 'com.android.support.test.espresso:espresso-contrib:3.0.1'

0

Краще рішення пояснюється в офіційному поясненні . Відповідь, яку я давав раніше, я залишив під горизонтальною лінією.

Відповідно до рішення:

Використовуйте зовнішній тег і запишіть наступний код нижче у файл верхнього рівня build.gradle . Ви будете змінювати версію на змінну, а не статичний номер версії.

ext {
    compileSdkVersion = 26
    supportLibVersion = "27.1.1"
}

Змініть статичні номери версій у вашому файлі build.gradle на рівні програми , номер якого є (Module: app)поряд.

android {
    compileSdkVersion rootProject.ext.compileSdkVersion // It was 26 for example
    // the below lines will stay
}

// here there are some other stuff maybe

dependencies {
    implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
    // the below lines will stay
}

Синхронізуйте свій проект, і ви не отримаєте помилок.


Вам не потрібно нічого додавати в сценарії Gradle. Встановіть необхідні SDK, і проблема буде вирішена.

У вашому випадку встановіть бібліотеки нижче в розділі Налаштування> Android SDK або Інструменти> Android> Менеджер SDK

введіть тут опис зображення


0

Додайте цей рядок під залежність у вашому файлі gradle

compile 'com.android.support:support-annotations:27.1.1'
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.