После обновления Android Studio с Canary 3 до Canary 4 во время сборки выдается следующая ошибка.
Зависимость Android com.android.support:support-support-v4 имеет разные версии для пути к классам компиляции (25.2.0) и времени выполнения (26.0.0-beta2). Вы должны вручную установить ту же версию через DependencyResolution.
Я провел полный поиск по всему проекту, и версия 25.1.0
не использовалась.
App-build.gradle
android {
compileSdkVersion 26
buildToolsVersion '26.0.0'
defaultConfig {
applicationId "com.xxx.xxxx"
minSdkVersion 14
targetSdkVersion
versionCode 1
versionName "1.0"
multiDexEnabled true
}
buildTypes {
debug {
debuggable true
}
release {
debuggable false
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
lintOptions {
abortOnError false
}
}}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
testImplementation 'junit:junit:4.12'
implementation project(':core')
implementation com.google.android.gms:play-services-gcm:9.0.0'
implementation('com.crashlytics.sdk.android:crashlytics:2.6.5@aar') {
transitive = true
}
implementation 'com.android.support:multidex:1.0.1'
implementation 'com.flurry.android:analytics:7.0.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.6.0'
implementation 'com.jakewharton:butterknife:8.6.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
}
Библиотека-build.gradle:
apply plugin: 'com.android.library'
android {
compileSdkVersion 26
buildToolsVersion '26.0.0'
defaultConfig {
minSdkVersion 14
targetSdkVersion
versionCode 1
versionName "1.0"
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation files('libs/model.jar')
testImplementation 'junit:junit:4.12'
implementation 'com.android.support:percent:26.0.0-beta2'
implementation 'com.android.support:appcompat-v7:26.0.0-beta2'
implementation 'com.android.support:support-core-utils:26.0.0-beta2'
implementation 'com.squareup.retrofit2:retrofit:2.0.2'
implementation 'com.squareup.picasso:picasso:2.4.0'
implementation 'com.squareup.retrofit2:converter-gson:2.0.2'
implementation 'com.squareup.okhttp3:logging-interceptor:3.2.0'
implementation 'uk.co.chrisjenx:calligraphy:2.2.0'
implementation 'com.google.code.gson:gson:2.2.4'
implementation 'com.android.support:design:26.0.0-beta2'
implementation 'com.github.PhilJay:MPAndroidChart:v3.0.1'
}
Примечание: проект отлично строился в Canary 3
android
android-gradle-plugin
build.gradle
ДроидУченик
источник
источник
Ответы:
Используйте этот код в своем скрипте сборки (корень build.gradle):
источник
!details.requested.name.contains('multidex')
то, что мне действительно помогло.У меня была та же ошибка, что и было решением моей проблемы. В моей библиотеке вместо компиляции или реализации я использую «api». Итак, в конце концов, мои зависимости:
Вы можете найти дополнительную информацию о «api», «реализации» по этой ссылке https://stackoverflow.com/a/44493379/3479489.
источник
Вы должны иметь возможность точно увидеть, какая зависимость используется в нечетной версии как транзитивная, выполнив правильную
gradle -q dependencies
команду для вашего проекта, как описано здесь:https://docs.gradle.org/current/userguide/userguide_single.html#sec:listing_dependencies
Как только вы отследите, что его тянет, вы можете добавить исключение к этой конкретной зависимости в вашем файле gradle с чем-то вроде:
источник
После долгого времени и получения помощи от друга, который знает об android гораздо больше, чем я: app / build.gradle
и зависимости
в build.gradle
в gradle.properties
источник
resolutionStrategy.force
было единственное, что сработало для меня. Спасибо!Ответом для меня было также добавить это в свой
build.gradle
файл:В моем случае было необходимо заключить стратегию разрешения в
configurations.all { .. }
блок. Я поместилconfigurations.all
блок прямо в свойapp/build.gradle
файл (т.е.configurations.all
не был вложен ни в что другое)источник
Это сработало для меня:
Добавьте следующую строку в
app/build.gradle
раздел зависимостей:или
:27.1.1
в моем случаеисточник
Добавьте этот код в файл build.gradle на уровне проекта.
Образец кода :
источник
Если у кого-то возникнет эта проблема с зависимостью в 2019 году, обновите Android Studio до версии 3.4 или новее
источник
Я решил это, обновив мою зависимость от gradle в файле android / build.gradle: classpath 'com.android.tools.build:gradle:3.3.1' (ранее я использовал версию 3.2.
источник
Я решил это, следуя тому, что Эдди упомянул выше,
источник
Переключение моих конфликтующих зависимостей с реализации на API помогает. Вот хорошая статья от mindorks, объясняющая разницу.
https://medium.com/mindorks/implementation-vs-api-in-gradle-3-0-494c817a6fa
Редактировать:
Вот и мои разрешения зависимостей
источник
Смотрите в своей библиотеке проекты, чтобы compileSdkVersion и targetSdkVersion были на том же уровне, что и ваше приложение.
также сделать все зависимости на одном уровне
источник
Я комментирую,
//api 'com.google.android.gms:play-services-ads:15.0.1'
что у меня сработало после синхронизацииисточник
Просто добавьте эти строки в свой файл build.gradle
ResolutionStrategy.force "com.android.support:support-media-compat:26.0.0-beta2"
ResolutionStrategy.force "com.android.support:support-v4:26.0.0-beta2"
источник
В моем случае у меня были две разные версии приведенной ниже реализации в двух разных модулях, поэтому я изменил обе реализации на версии, то есть 6.0.2, и это сработало. Вам также может потребоваться написать разрешение зависимостей, чтобы увидеть принятый ответ.
модуль приложения
модуль общего пользования
источник
добавьте это в gradle (проект) внутри
allprojects
источник
Замените жестко закодированную версию на + пример:
источник