Depois de atualizar o Android Studio do Canary 3 para o Canary 4 , o seguinte erro é gerado no momento da compilação.
A dependência do Android 'com.android.support:support-support-v4' tem uma versão diferente para o classpath de compilação (25.2.0) e runtime (26.0.0-beta2). Você deve definir manualmente a mesma versão por meio de DependencyResolution.
Fiz uma pesquisa completa em todo o projeto e a versão 25.1.0
não é usada.
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'
}
Library-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'
}
Nota: O projeto estava sendo construído corretamente na Canária 3
android
android-gradle-plugin
build.gradle
DroidLearner
fonte
fonte
Respostas:
Use este código em seu buildscript (build.gradle root):
fonte
!details.requested.name.contains('multidex')
realmente me ajudou.Tive o mesmo erro, o que resolveu meu problema foi. Na minha biblioteca, em vez de compilar ou implementar, eu uso "api". Então, no final, minhas dependências:
Você pode encontrar mais informações sobre "api", "implementação" neste link https://stackoverflow.com/a/44493379/3479489
fonte
Você deve ser capaz de ver exatamente qual dependência está puxando na versão ímpar como uma dependência transitiva executando o
gradle -q dependencies
comando correto para seu projeto, conforme descrito aqui:https://docs.gradle.org/current/userguide/userguide_single.html#sec:listing_dependencies
Depois de rastrear o que está puxando para dentro, você pode adicionar uma exclusão a essa dependência específica em seu arquivo Gradle com algo como:
fonte
Depois de muito tempo e recebendo a ajuda de um amigo que sabe muito mais do que eu sobre android: app / build.gradle
e dependências
em build.gradle
em gradle.properties
fonte
resolutionStrategy.force
foi a única coisa que funcionou para mim. Obrigado!A resposta para mim foi adicionar isso também ao meu
build.gradle
arquivo:No meu caso, foi necessário encerrar a estratégia de resolução em um
configurations.all { .. }
bloco. Coloquei oconfigurations.all
bloco diretamente no meuapp/build.gradle
arquivo (ou seja,configurations.all
não estava aninhado em mais nada)fonte
Isso funcionou para mim:
Adicione a seguinte linha na
app/build.gradle
seção de dependências:ou
:27.1.1
no meu casofonte
Adicione este código em seu arquivo build.gradle de nível de projeto.
Código de amostra :
fonte
Se alguém tiver esse problema de dependência em 2019, atualize o Android Studio para 3.4 ou posterior
fonte
Resolvi isso atualizando minha dependência do Gradle no arquivo android / build.gradle: classpath 'com.android.tools.build:gradle:3.3.1' (eu estava anteriormente na versão 3.2.
fonte
Resolvi isso seguindo o que Eddi mencionou acima,
fonte
Alternar minhas dependências conflitantes de implementação para API resolve o problema. Aqui está um bom artigo da mindorks explicando a diferença.
https://medium.com/mindorks/implementation-vs-api-in-gradle-3-0-494c817a6fa
Editar:
Aqui estão minhas resoluções de dependência também
fonte
Vejo em seus projetos de biblioteca tornar o compileSdkVersion e targetSdkVersion versão de mesmo nível que o seu pedido é
também fazer todas as dependências no mesmo nível
fonte
Eu comento
//api 'com.google.android.gms:play-services-ads:15.0.1'
que funcionou para mim após a sincronizaçãofonte
Basta adicionar essas linhas em seu arquivo 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"
fonte
No meu caso, eu tinha duas versões diferentes da implementação abaixo em dois módulos diferentes, então mudei ambas as implementações para versões, ou seja: 6.0.2 e funcionou. Você também pode precisar escrever resolução de dependência para ver a resposta aceita.
módulo de app
módulo comum
fonte
adicione isso ao gradle (projeto) dentro
allprojects
fonte
Substitua uma versão codificada para + exemplo:
fonte