Ошибка сборки «Не удалось выполнить задачу»: app: preDebugAndroidTestBuild »при создании первого приложения по умолчанию - PullRequest
0 голосов
/ 01 мая 2018

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

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

Error:Execution failed for task ':app:preDebugAndroidTestBuild'.

Конфликт с зависимостью 'com.android.support:support-annotations' в проекте ': приложение'. Разрешенные версии для приложения (26.1.0) и тестового приложения (27.1.1) отличаются. Подробнее см. https://d.android.com/r/tools/test-apk-dependency-conflicts.html.

Рассматривая другие решения SO (второй ответ здесь: Разрешенные версии для приложения (22.0.0) и тестового приложения (21.0.3) отличаются ), было сказано добавить это к зависимостям при сборке. сценарий 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 (Модуль: приложение):

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'
}

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

Ответы [ 4 ]

0 голосов
/ 23 сентября 2018

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

0 голосов
/ 05 мая 2018

Я изменил свою версию реализации для 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'
}
0 голосов
/ 06 мая 2018

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

Ответ здесь: Все библиотеки 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}"
    ...
}

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

0 голосов
/ 02 мая 2018

У меня была такая же проблема, я сделал некоторые изменения в 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'

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...