J'ai mis à jour mon Android studio to 3.4 canary
et je ne peux plus construire correctement à cause de l'erreur suivante:
The given artifact contains a string literal with a package reference 'Android.support.v4.content' that cannot be safely rewritten. Libraries using reflection such as annotation processors need to be updated manually to add support for androidx.
Plus de détails:
Caused by: Java.lang.RuntimeException: Failed to transform '.gradle/caches/modules-2/files-2.1/com.jakewharton/butterknife-compiler/9.0.0-SNAPSHOT/732f93940c74cf32a7c5ddcc5ef66e53be052352/butterknife-compiler-9.0.0-SNAPSHOT.jar' using Jetifier. Reason: The given artifact contains a string literal with a package reference 'Android.support.v4.content' that cannot be safely rewritten. Libraries using reflection such as annotation processors need to be updated manually to add support for androidx.. (Run with --stacktrace for more details.)
Clairement, cela a quelque chose à voir avec Butterknife, androidx and Jetifier
Est-ce que quelqu'un sait comment résoudre ce problème?
Essayez de mettre Blackknife Butterknife dans le jetifier:
gradle.properties file:
Android.jetifier.blacklist = butterknife.*\\.jar
Vous devez être sur les versions 3.3.0-rc1 de AGP et 1.3.0 du plugin Kotlin Gradle:
buildscript {
repositories {
...
}
dependencies {
classpath 'com.Android.tools.build:gradle:3.3.0-rc01'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.0"
classpath 'com.jakewharton:butterknife-gradle-plugin:9.0.0-rc2'
}
}
Ajoutez la dernière version de la dépendance butterknive que vous pouvez vérifier ici si elle change ( https://github.com/JakeWharton/butterknife ). Il prend en charge androidX. Accédez ensuite à votre application et remplacez l'ancienne version par la suivante:
dependencies {
implementation 'com.jakewharton:butterknife:10.0.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0'
}
Quelle version si Butterknife utilisez-vous? La dernière version 9.0.0-rc2 prend en charge androidx.
UPD: Il existe un problème fermé sur github repo de knifeknife. Solution de contournement temporaire
Ajoutez Android.jetifier.blacklist = butterknife-compiler à votre fichier gradle.properties.
L'utilisation de la dernière version de Butterknife a résolu le problème. Utilisez> = 9.0.0-rc2 (Butterknife Version) pour prendre en charge androidX . Pour la dernière version, consultez le lien - https://github.com/JakeWharton/butterknife/releases