GOOGLE ADS

samedi 23 avril 2022

La dépendance Android a une version différente pour la compilation et l'exécution

Après la mise à jour d'Android Studio de Canary 3 à Canary 4, l'erreur suivante est générée au moment de la génération.

La dépendance Android 'com.android.support:support-support-v4' a une version différente pour le classpath de compilation (25.2.0) et d'exécution (26.0.0-beta2). Vous devez définir manuellement la même version via DependencyResolution.

J'ai effectué une recherche complète tout au long du projet et la version 25.1.0n'est nulle part utilisée.

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

Bibliothèque-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'
}

Remarque : Le projet était en cours de construction dans Canary 3


Solution du problème

Vous devriez être en mesure de voir exactement quelle dépendance extrait la version impaire en tant que dépendance transitive en exécutant la gradle -q dependenciescommande appropriée pour votre projet, comme décrit ici :

https://docs.gradle.org/current/userguide/userguide_single.html#sec:listing_dependencies

Une fois que vous avez trouvé ce qui l'attire, vous pouvez ajouter une exclusion à cette dépendance spécifique dans votre fichier gradle avec quelque chose comme:

implementation("XXXXX") {
exclude group: 'com.android.support', module: 'support-compat'
}

Aucun commentaire:

Enregistrer un commentaire

Comment utiliseriez-vous .reduce() sur des arguments au lieu d'un tableau ou d'un objet spécifique ?

Je veux définir une fonction.flatten qui aplatit plusieurs éléments en un seul tableau. Je sais que ce qui suit n'est pas possible, mais...