Después de actualizar Android Studio de Canary 3 a Canary 4 , aparece el siguiente error en el momento de la compilación.
La dependencia de Android 'com.android.support:support-support-v4' tiene una versión diferente para la ruta de clase de compilación (25.2.0) y tiempo de ejecución (26.0.0-beta2). Debe configurar manualmente la misma versión a través de DependencyResolution.
Realicé una búsqueda completa en todo el proyecto y la versión 25.1.0
no se utiliza.
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'
}
Biblioteca-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: El proyecto se estaba construyendo bien en Canary 3
android
android-gradle-plugin
build.gradle
DroidLearner
fuente
fuente
Respuestas:
Use este código en su buildscript (build.gradle root):
fuente
!details.requested.name.contains('multidex')
realmente me ayudó.Tuve el mismo error, lo que resolvió mi problema fue. En mi biblioteca en lugar de usar compilar o implementar, uso "api". Así que al final mis dependencias:
Puede encontrar más información sobre "api", "implementación" en este enlace https://stackoverflow.com/a/44493379/3479489
fuente
Debería poder ver exactamente qué dependencia está tirando en la versión impar como una dependencia transitiva ejecutando el
gradle -q dependencies
comando correcto para su proyecto como se describe aquí:https://docs.gradle.org/current/userguide/userguide_single.html#sec:listing_dependencies
Una vez que rastree lo que lo atrae, puede agregar una exclusión a esa dependencia específica en su archivo gradle con algo como:
fuente
Después de mucho tiempo y recibir ayuda de un amigo que sabe mucho más que yo sobre Android: app / build.gradle
y dependencias
en build.gradle
en gradle.properties
fuente
resolutionStrategy.force
fue lo único que funcionó para mí. ¡Gracias!La respuesta para mí fue agregar esto también a mi
build.gradle
archivo:En mi caso, fue necesario encerrar la estrategia de resolución en un
configurations.all { .. }
bloque. Coloqué elconfigurations.all
bloque directamente en miapp/build.gradle
archivo (es decirconfigurations.all
, no estaba anidado en nada más)fuente
Esto funcionó para mí:
Agregue la siguiente línea en la
app/build.gradle
sección de dependencias:o
:27.1.1
en mi casofuente
Agregue este código en su archivo build.gradle de nivel de proyecto.
Código de muestra :
fuente
Si alguien tiene este problema de dependencia en 2019, actualice Android Studio a 3.4 o posterior
fuente
Lo resolví actualizando mi dependencia de gradle en el archivo android / build.gradle: classpath 'com.android.tools.build:gradle:3.3.1' (anteriormente estaba en la versión 3.2.
fuente
Lo resolví siguiendo lo que Eddi mencionó anteriormente,
fuente
Cambiar mis dependencias en conflicto de la implementación a la API hace el truco. Aquí hay un buen artículo de Mindorks que explica la diferencia.
https://medium.com/mindorks/implementation-vs-api-in-gradle-3-0-494c817a6fa
Editar:
Aquí están mis resoluciones de dependencia también
fuente
Vea en los proyectos de su biblioteca hacer que la versión compileSdkVersion y targetSdkVersion esté al mismo nivel que su aplicación
también haga todas las dependencias al mismo nivel
fuente
Comento
//api 'com.google.android.gms:play-services-ads:15.0.1'
que funcionó para mí después de la sincronizaciónfuente
Simplemente agregue estas líneas en su archivo 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"
fuente
En mi caso, tenía dos versiones diferentes de la implementación a continuación en dos módulos diferentes, así que cambié ambas implementaciones a las versiones, es decir: 6.0.2 y funcionó. Es posible que también deba escribir la resolución de dependencia para ver la respuesta aceptada.
módulo de aplicación
módulo de bienes comunes
fuente
agregue esto a gradle (proyecto) dentro
allprojects
fuente
Reemplazar una versión codificada por + ejemplo:
fuente