Попытка следовать руководству здесь: 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'
}
но я все еще получаю ту же ошибку, когда пытаюсь синхронизировать проект. Есть идеи, как это решить?
У меня была такая же проблема, я внес некоторые изменения в 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'
у меня это сработало.
Я изменил свою версию реализации для 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()
в репозиториях
Было бы лучше, если бы вы дали немного больше объяснений проблемы и решения
Привет, спасибо за решение. Это могло бы решить проблему для других. Что сработало для меня, это следование документации на веб-сайте Android. См. Мой ответ для получения дополнительной информации. (сообщение об ошибке фактически содержало ссылку, которая дала мне простое рабочее решение).