J'ai mis à niveau mon android studio to 3.4 canary
et maintenant je ne peux plus réussir à construire en raison 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, c'est quelque chose à voir avec Butterknife, androidx and Jetifier
Est-ce que quelqu'un sait comment résoudre ce problème?
Réponses:
Nouvelle réponse correcte:
Butterknife 10.0.0 a ajouté la prise en charge d'AndroidX.
Ancienne réponse pour Butterknife <10.0.0:
Essayez de mettre le couteau à beurre sur la liste noire du jetifier:
Vous devez être sur la version 3.3.0-rc1 de l'AGP et la version 1.3.0 du plugin Kotlin Gradle:
la source
Ajoutez la dernière version de la dépendance butterknive, vous pouvez la vérifier ici si elle change ( https://github.com/JakeWharton/butterknife ). Il prend en charge androidX. Ensuite, accédez à la graddle de compilation de votre application et remplacez l'ancienne version par la suivante:
la source
Pour androidx, mettez simplement à niveau vos dépendances vers la version '10 .0.0 '
Recherchez la documentation ici
la source
Mettez à niveau ButterKnife vers la dernière version et assurez-vous de les ajouter à votre build.gradle (application):
la source
Quelle version si vous utilisez Butterknife? La dernière version 9.0.0-rc2 prend en charge androidx.
UPD: Il y a un problème fermé sur le dépôt github de Butterknife . Solution de contournement temporaire
Ajoutez android.jetifier.blacklist = butterknife-compiler à votre fichier gradle.properties.
la source
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
la source
Mon projet n'utilise pas Butterknife, mais j'ai eu la même erreur "L'artefact donné contient une chaîne littérale avec une référence de package 'android.support.v4.widget' qui ne peut pas être réécrite en toute sécurité. Les bibliothèques utilisant la réflexion comme les processeurs d'annotations doivent être mis à jour manuellement pour ajouter le support pour androidx "Voici ce que j'ai fait pour le résoudre: Mettez à jour la version de votre colis
fichier de construction gradle
Remplacer:
Avec:
la source
Changement
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
à
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
ou d'autres thèmes matériels. Vous avez cette erreur après avoir démarré un nouveau projet avec "Aucune activité" dans Android Studio 4.0.1
la source
mettre à jour butterknife + invalider le cache et redémarrer + synchroniser le gradle si buterknife n'est pas utilisé, vider simplement le cache et redémarrer
la source