Я новичок в разработке приложений для Android. Когда я попытался создать новый проект Android Project ... появилось следующее сообщение ..
Ошибка: не удалось выполнить задачу ': app: preDebugAndroidTestBuild'.
Conflict with dependency 'com.android.support:support-annotations' in project ':app'. Resolved versions for app (26.1.0) and test app (27.1.1) differ. See https://d.android.com/r/tools/test-apk-dependency-conflicts.html for details. Information:Gradle tasks [:app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:mockableAndroidJar]
Это скриншот моего проекта нажмите здесь, чтобы увидеть снимок экрана с полученной мной ошибкой
Я также попытался добавить этот код в свою зависимость .. androidTestCompile 'com.android.support:support-annotations:23.3.0' это не сработало. Еще пробовал 27.1.1 и 26.1.0 .. это тоже не сработало.
Обновление Android Studio (а также эмулятора и некоторых других вещей после этого) решило эту проблему для меня.
Проблема связана с аннотацией gradle, которая по умолчанию не используется при создании нового проекта Android Studio. Возможно, это поможет вам: readyandroid.wordpress.com/…
На основании вашего скриншота я нашел два рабочих решения:
Первое решение: добавьте в зависимости вашего модуля 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
line на
compileSdkVersion rootProject.ext.compileSdkVersion
и в разделе dependencies
измените импортированную библиотеку так:
compile "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
и синхронизируйте свой проект
Примечание:, если вы используете Android studio 3+, замените compile
на implementation
Чтобы узнать разницу между compile
и implementation
, посмотрите на это
В чем разница между реализацией и компиляцией в Gradle
Я бы предложил использовать "реализацию" вместо компиляции
Это связано с конфликтом версий, чтобы решить эту проблему, просто принудительно обновите свою версию поддержки-аннотаций, добавив эту строку в свой модуль: 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
.
Спасибо desgraci, это решение помогло мне
после добавления этой строки теперь я получаю сообщение об ошибке «Ошибка: Выполнение не удалось для задачи ': app: processDebugManifest'.> Слияние манифеста не удалось с несколькими ошибками, см. журналы», пожалуйста, помогите мне, как я могу решить эту проблему
@Basant Мне нужно было бы увидеть, в чем проблема, поскольку это проблема с выполнением вашего gradle, было бы лучше открыть вопрос для этого
Извините за поздний ответ @desgraci, я решил эту проблему, обновив IDE
@Basant рад это слышать!
Добавление этого в build.gradle (приложение модуля) сработало для меня:
скомпилировать com.android.support:support-annotations:27.1.1
Еще один простой способ решить эту проблему - отредактировать build.gradle
(приложение):
android
и замените compileSdkVersion 26
на compileSdkVersion 27
defaultConfig
и замените targetSdkVersion 26
на targetSdkVersion 27
dependencies
и заменил implementation 'com.android.support:appcompat-v7:26.1.0'
на implementation 'com.android.support:appcompat-v7:27.1.1'
Добавьте приведенную ниже строку в файл app.gradle перед блоком зависимостей.
configurations.all {
resolutionStrategy {
force 'com.android.support:support-annotations:26.1.0'
}
}
Также ниже приведен скриншот для лучшего понимания.
блок configurations.all будет полезен только в том случае, если вы хотите, чтобы ваш целевой sdk был 26. Если вы можете изменить его на 27, ошибка исчезнет без добавления блока конфигурации в файл app.gradle.
Есть еще один способ, если вы удалите всю тестовую реализацию из файла app.gradle, это устранит ошибку, и в этом также вам не нужно добавлять блок конфигурации или изменять версию targetdk.
Надеюсь, это поможет.
Спасибо, сэкономь мое время
@ManikandanK рад помочь!
Хвала вам за то, что вы дали полные инструкции! (Многие ответы на подобные темы похожи на «Добавьте это:» force 'com.android.support:support-annotations:26.1.0' »с небольшим контекстом / без контекста! (К сожалению, я все еще получаю то же самое ошибка сборки, в моем случае "Не удалось найти com.android.support:support-annotations:27.0.0. Требуется: trainingiq: bugsnag-react-native: unspecified> com.bugsnag: bugsnag-android: 4.3.1"
Не волнуйтесь, это просто:
Перейдите в структуру директории «Project» и в ней перейдите к «Gradle Scripts», а внутри нее перейдите к «build.gradle (Module: app)» и дважды щелкните по нему.
Сейчас - Прокрутите программу вниз и перейдите в раздел зависимостей: Как показано ниже
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'
}
Теперь удалите последние две строки кода и перестройте приложение, и теперь оно будет работать.
Зависимости должны быть:
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'
}
ВОССТАНОВИТЕ ПРИЛОЖЕНИЕ, И ОНО РАБОТАЕТ !!
Вы не объяснили, что вы удалили / добавили. Что делать, если здесь нужны библиотеки тестов?
Если изменение целевой версии 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'
У меня такая же проблема в build.gradle (Module: app) добавьте следующую строку кода внутри зависимостей:
dependencies
{
...
compile 'com.android.support:support-annotations:27.1.1'
}
У меня это сработало отлично
Перейдите в build.gradle (приложение-модуль) в своем проекте:
Следуйте картинке и измените эту версию:
compileSdkVersion: 27
targetSdkVersion: 27
и если версия студии Android 2: Измените строку на эту строку:
compile 'com.android.support:appcompat-v7:27.1.1'
еще Измените строку на эту строку:
implementation 'com.android.support:appcompat-v7:27.1.1'
и, надеюсь, вы исправите свою ошибку.
Если вы используете Android Studio 3.1. + Или выше
просто поместите это в свои зависимости Gradle:
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'
}
Спасибо, приятель, с любовью
Лучшее решение объясняется в официальное объяснение. Я оставил ответ, который дал ранее, под горизонтальной чертой.
По решению там:
Используйте внешний тег и запишите следующий код ниже в файле 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
Если вы используете версию 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'
Да благословит вас Бог, пусть библиотеки поддержки Android сгниют в аду!
Значит мастер студии Android создает проект с нуля С ошибками? ¬¬
А что насчет 28 год?
// 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
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...
}
Решение - сделать ваши версии такими же, как и во всех модулях. Чтобы у вас не было конфликтов.
I felt when I have updated versions of everything- gradle, sdks, libraries etc. then I face less errors. Because developers are working hard to make it easy development on Android Studio.
Всегда имейте последние, но стабильные версии Нестабильными версиями являются alpha
, beta
и rc
, игнорируйте их при разработке.
Я обновил все нижеприведенные в моих проектах, и я больше не сталкиваюсь с этими ошибками.
build.gradle
- classpath 'com.android.tools.build:gradle:3.2.0'
(Релиз android.build.gradle
трека & это)buildToolVersion
(Трек buildToolVersion выпуск)compileSdkVersion
и targetSdkVersion
Выпуск платформы отслеживанияУдачного кодирования! :)
Добавьте эту строку под зависимостями в вашем файле gradle
compile 'com.android.support:support-annotations:27.1.1'
Добавьте это в свой файл Gradle.
implementation 'com.android.support:support-annotations:27.1.1'
Отметьте этот вопрос: stackoverflow.com/q/43817004/9611523. Надеюсь, это поможет.