L'artefatto specificato contiene una stringa letterale con un riferimento al pacchetto "android.support.v4.content" che non può essere riscritto in modo sicuro. per androidx


99

Ho aggiornato il mio android studio to 3.4 canarye ora non riesco più a costruire con successo a causa del seguente errore:

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.

Più dettagli:

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.)

Chiaramente, ha qualcosa a che fare con Butterknife, androidx and Jetifier

Qualcuno sa come risolvere questo problema?


provato questo: questo ma senza fortuna
Tnaffh

Qual era l'espressione regolare che hai cercato di aggiungere alla lista nera?
Jorge Gil

L'artefatto specificato contiene una stringa letterale con un riferimento al pacchetto "android.support.v4.widget" che non può essere riscritto in modo sicuro. Le librerie che utilizzano la riflessione come i processori di annotazione devono essere aggiornate manualmente per aggiungere il supporto per androidx. Ricevo l'errore sopra, quando provo a creare un apk firmato con minifyenabled e shrinkresources impostati su true. Sono in grado di eseguire l'applicazione in emulatore o dispositivo altrimenti. Come risolvere questo problema?
Arpit Rastogi

Bella domanda! Molto utile, grazie
And

Risposte:


149

Nuova risposta corretta:

Butterknife 10.0.0 ha aggiunto il supporto per AndroidX.

dependencies {
    implementation 'com.jakewharton:butterknife:10.0.0'
    annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0'
}

Vecchia risposta per Butterknife <10.0.0:

Prova a inserire nella lista nera il butterknife dal jetifier:

gradle.properties file:

android.jetifier.blacklist = butterknife.*\\.jar

Devi essere sul 3.3.0-rc1 dell'AGP e sulla versione 1.3.0 del 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'
    }
}

Penso che non aggiungi android.jetifier.blacklist = butterknife. * \\. Jar perché ho testato che non ha funzionato. Aggiungi solo classpath 'com.jakewharton: butterknife-gradle-plugin: 9.0.0-rc2', quindi funzionerà durante il debug ed esporterà il file apk senza problemi.
kimcy929

Maggiori informazioni possono essere trovate qui issuetracker.google.com/issues/119135578#comment5
Jude Fernandes

1
Questa risposta è corretta, ma dai un'occhiata a: stackoverflow.com/a/54345816/371749 aggiorna butterknife a 10, risolve anche questo problema in un modo migliore.
cV2

Questa soluzione funziona bene per la build di debug ma non sono in grado di creare APK di rilascio firmato. L'artefatto specificato contiene una stringa letterale con un riferimento al pacchetto "android.support.v4.widget" che non può essere riscritto in modo sicuro. Le librerie che utilizzano la riflessione come i processori di annotazione devono essere aggiornate manualmente per aggiungere il supporto per androidx.
Arpit Rastogi

molto utile, grazie
And

60

Aggiungi l'ultima versione della dipendenza Butterknive che puoi controllare qui se cambia ( https://github.com/JakeWharton/butterknife ). Supporta androidX. Quindi vai alla tua app build graddle e sostituisci la vecchia versione con la seguente:

dependencies {
implementation 'com.jakewharton:butterknife:10.0.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0'
}

27

Per androidx aggiorna semplicemente le tue dipendenze alla versione '10 .0.0 '

dependencies {
implementation 'com.jakewharton:butterknife:10.0.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0'
}

Cerca la documentazione qui


La casella di testo di modifica del mio clic fornisce un puntatore nullo. non è inizializzato.
Vasudev Vyas

18

Aggiorna ButterKnife alla versione più recente e assicurati di aggiungerli al tuo build.gradle (app):

android {
...
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
}

migliore risposta, dopo l'upgeade che ho cercato questa soluzione -> Errore: i metodi di interfaccia statica sono supportati solo a partire da Android N (--min-api 24): void butterknife.Unbinder.lambda $ static $ 0 ()
avisper

ti amo amico, ce l'hai fatta ... ho sprecato mezza giornata a cercare, poi arriva questa risposta.
Zeeshan Mehdi



1

Il mio progetto non utilizza Butterknife, ma ho riscontrato lo stesso errore "L'artefatto fornito contiene una stringa letterale con un riferimento al pacchetto 'android.support.v4.widget' che non può essere riscritto in modo sicuro. Le librerie che utilizzano la riflessione come i processori di annotazione devono essere aggiornato manualmente per aggiungere il supporto per androidx "Questo è quello che ho fatto per risolverlo: aggiorna la tua versione del pacco

gradle build file

Sostituire:

annotationProcessor 'org.parceler:parceler:1.1.6'
implementation 'org.parceler:parceler-api:1.1.6'

Con:

  annotationProcessor 'org.parceler:parceler:1.1.13'
  implementation 'org.parceler:parceler-api:1.1.13'

codice file gradle visualizzazione file gradle


0

Modificare

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

per

<style name="AppTheme" parent="Theme.MaterialComponents.DayNight.DarkActionBar">

o altri temi materiali. Ho ricevuto questo errore dopo aver avviato un nuovo progetto con "Nessuna attività" in Android Studio 4.0.1


0

aggiorna butterknife + invalida la cache e riavvia + sincronizza gradle se buterknife non viene utilizzato, cancella la cache e riavvia

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.