Ошибка сборки «Ошибка выполнения для задачи ': app: preDebugAndroidTestBuild'» при создании первого приложения по умолчанию

Попытка следовать руководству здесь: https://developer.android.com/training/basics/firstapp/creating-project

но после того, как я создаю действие и нажимаю «Готово», появляется сообщение об ошибке сборки Gradle:

Error:Execution failed for task ':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.

Глядя на другие решения SO (второй ответ здесь: Разрешенные версии приложения (22.0.0) и тестового приложения (21.0.3) различаются), он сказал добавить это к зависимостям скрипта build.gradle:

androidTestCompile 'com.android.support:support-annotations:xx.x.x'

Вышеупомянутое решение также показано в образцах Google (https://github.com/googlesamples/android-testing/blob/ba14ef9e925fa17621bf86abe5336dcb9d53e466/runner/AndroidJunitRunnerSample/app/build.gradle#L36).

Итак, теперь это мой build.gradle (Module: app):

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "com.example.ahmedayman.ember"
        minSdkVersion 15
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

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.0'
    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'
    androidTestCompile 'com.android.support:support-annotations:26.1.0'
}

но я все еще получаю ту же ошибку, когда пытаюсь синхронизировать проект. Есть идеи, как это решить?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
5 614
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

У меня была такая же проблема, я внес некоторые изменения в build.gradle (Module: app), и у меня это сработало. Я изменил это androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

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

у меня это сработало.

Привет, спасибо за решение. Это могло бы решить проблему для других. Что сработало для меня, это следование документации на веб-сайте Android. См. Мой ответ для получения дополнительной информации. (сообщение об ошибке фактически содержало ссылку, которая дала мне простое рабочее решение).

SilentDev 06.05.2018 22:21

Я изменил свою версию реализации для appcompat-v7 на 27.1.1 в build.gradle (Module: app), и это решило проблему для меня.

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    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'
}
Ответ принят как подходящий

Редактировать

Ответ здесь: Все библиотеки com.android.support должны использовать одну и ту же спецификацию версии.

упоминает, что Android Studio 3.0 заменила compile реализацией, поэтому я использовал implementation 'com.android.support:design:27.1.1' вместо compile (о чем упоминается ниже).

Оригинальный ответ

В сообщении об ошибке была ссылка на веб-сайт для просмотра. Я просмотрел веб-сайт и веб-сайт, связанный с этим URL: https://developer.android.com/studio/build/gradle-tips#configure-project-wide-properties

Указанный URL-адрес для настройки свойств проекта. Он сказал добавить это в мой файл проекта build.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"
    ...
}

и добавить это в мой файл приложения build.gradle:

android {
  // Use the following syntax to access properties you define at the project level:
  // rootProject.ext.property_name
  compileSdkVersion rootProject.ext.compileSdkVersion
  ...
}
...
dependencies {
    compile "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
    ...
}

Это решило проблему.

заменить jcenter() на mavenCentral() в репозиториях

Было бы лучше, если бы вы дали немного больше объяснений проблемы и решения

Prabhu 23.09.2018 20:18

Другие вопросы по теме