web-dev-qa-db-fra.com

L'artéfact donné contient un littéral de chaîne avec une référence de package 'Android.support.v4.content' qui ne peut pas être réécrite en toute sécurité. pour androidx

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?

6
Tnaffh

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'
    }
}
12
Jorge Gil

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

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.

1
Konstantin Berkow

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

1
chahat jain