Я новичок в разработке приложений для Android. Когда я попытался создать новый проект, Android Project... появилось следующее сообщение...
Error:Execution failed for task ':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:generateDebugSources, :app:generateDebugAndroidTestSources, :app:mockableAndroidJar].
Вот скриншот моего проекта нажмите здесь, чтобы увидеть скриншот ошибки, которую я получил
Я также попробовал добавить этот код в мою зависимость... androidTestCompile 'com.android.support:support-annotations:23.3.0' это не сработало. Я также пробовал 27.1.1 и 26.1.0... это тоже не сработало.
На основе вашего снимка экрана я нашел два рабочих решения:
Первое решение: добавьте в зависимости вашего модуля 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
смотрите здесь
https://stackoverflow.com/questions/44493378/whats-the-difference-between-implementation-and-compile-in-gradle
Добавить ниже строку в вашем приложении.Gradle в файл перед depencencies блока.
configurations.all {
resolutionStrategy {
force 'com.android.support:support-annotations:26.1.0'
}
}
Там's также скриншот ниже для лучшего понимания.
конфигурации.все блок будет только полезно, если вы хотите, чтобы ваш целевой SDK будет 26. Если вы можете изменить его на 27 ошибка пропадет без добавления конфигурации блока в приложении.файл Gradle.
Есть еще один способ, если вы хотели удалить все выполнение теста из приложения.файл Gradle было бы устранить ошибку и в этом также вам не нужно, чтобы добавить настройки блок не нужно менять targetsdk версия.
Надеюсь, что помогает.
Если вы используете версию 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 студии 3.1.+ или выше
просто поместите это в ваш Gradle в depedencies:
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'
}
Это связано с конфликтом версий, чтобы решить эту проблему, просто принудительно обновите версию support-annotations, добавив эту строку в ваш модуль: 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 файл, и объявите вашу поддержку, или просто для этого примера, аннотацию version var
ext.annotation_version = "27.1.1"
Затем в вашем модуле gradle замените его на:
implementation ("com.android.support:support-annotations:$annotation_version")
.
Это очень похоже на решение @emadabel, которое является хорошей альтернативой, но без блока или префикса rootproject
.
Добавление этого в build.gradle (Module app) сработало для меня: compile 'com.android.support:support-annotations:27.1.1'.
Дон'т беспокойтесь, это просто:
Поехать в "проекта" структура каталогов и в которые идут, чтобы "Скрипты Gradle" и внутри его идут, чтобы "построить.(модуль:приложения) и quot градля; и дважды щелкните его.
Теперь - Прокрутите программу, и в этом перейти в раздел зависимостей : Как ниже
зависимости {
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'
}
ПЕРЕСТРОИТЬ ПРИЛОЖЕНИЕ И ОНО РАБОТАЕТ !!
Перейдите к построению.Gradle(приложение модуля) в вашем проекте:
Следуйте рис и изменить эти версии:
compileSdkVersion: 27
targetSdkVersion: 27
и если студийная версия Андроид 2: Измените строку с этой линии:
compile 'com.android.support:appcompat-v7:27.1.1'
еще Измените строку с этой линии:
implementation 'com.android.support:appcompat-v7:27.1.1'
и надеюсь, вы будете решать вашу ошибку.
У меня такая же проблема, в строй.Gradle в (модуль:приложение) добавьте следующую строку кода в зависимости:
dependencies
{
...
compile 'com.android.support:support-annotations:27.1.1'
}
Он работал отлично для меня
// 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...
}
некоторые библиотеки строить.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 в, Фнаф, библиотеки и т. д. потом возникает меньше ошибок. Потому что разработчики работают жесткий, чтобы сделать его легким разработки в Android студия.
Всегда есть последний, но стабильные версии нестабильные версии Альфа
, Бета
и вертолет
, игнорировать их в развитии.
Я обновил все ниже в моих проектах, и я Дон'т больше сталкиваются с этими ошибками.
-
классов 'сом.андроид.инструменты.сборка:Gradle в:3.2.0'([трек
для Андроид.построить.Gradle в` релиз]3 &ампер; это) buildToolVersion
(трек buildToolVersion релиз)compileSdkVersion
и targetSdkVersion
трек релиз платформы Удачи в кодировании! :)
Еще один простой способ решить эту проблему, чтобы изменить свой построить.Gradle в` (приложение):
андроид
теге и изменение compileSdkVersion 26до
compileSdkVersion 27`до
targetSdkVersion 27`в
реализации 'сом.андроид.поддержка:совместимости приложений-В7:27.1.1'`Лучшее решение объясняется в официальное описание. Я оставил ответ я дал раньше под горизонтальной линией.
В соответствии с решением здесь:
Использовать внешний тег и запишите ниже код в верхнем уровне строение.Gradle в файл. Вы'ре собирается менять версию переменной, а не статический номер версии.
ext {
compileSdkVersion = 26
supportLibVersion = "27.1.1"
}
Менять статический номер версии вашего приложения на уровне строение.Gradle в файл, то есть `(модуль: приложение) рядом.
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
}
Синхронизируйте проект, и вы'll получить без ошибок.
Вы Don'т нужно добавить что-нибудь для Gradle скрипты. Установите необходимые SDK и проблема будет решена.
В вашем случае, установить библиотеки ниже от предпочтения и GT; Андроид СДК или инструменты и GT; Андроид > менеджер SDK
Если изменения целевой версии 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'
Добавьте следующую строку под зависимости в Gradle в файл
compile 'com.android.support:support-annotations:27.1.1'