O artefato fornecido contém um literal de string com uma referência de pacote 'android.support.v4.content' que não pode ser reescrito com segurança. para androidx


99

Eu atualizei meu android studio to 3.4 canarye agora não consigo mais construir com sucesso devido ao seguinte erro:

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.

Mais detalhes:

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

Claramente, é algo a ver com Butterknife, androidx and Jetifier

Alguém sabe como consertar isso?


tentei isso: isso mas sem sorte
Tnaffh

Qual foi a expressão regular que você tentou adicionar à lista negra?
Jorge Gil

O artefato fornecido contém um literal de string com uma referência de pacote 'android.support.v4.widget' que não pode ser reescrito com segurança. Bibliotecas que usam reflexão, como processadores de anotação, precisam ser atualizadas manualmente para adicionar suporte para androidx. Estou recebendo o erro acima, quando estou tentando criar um apk assinado com minifyenabled e shrinkresources definidos como true. Consigo executar o aplicativo no emulador ou dispositivo de outra forma. Como resolver esse problema?
Arpit Rastogi

Boa pergunta! Muito útil, obrigado
Androider

Respostas:


149

Nova resposta correta:

Butterknife 10.0.0 adicionou suporte para AndroidX.

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

Resposta antiga para Butterknife <10.0.0:

Tente colocar o butterknife na lista negra do jetificador:

gradle.properties file:

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

Você precisa estar no 3.3.0-rc1 do AGP e na versão 1.3.0 do plug-in 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'
    }
}

Acho que você não adiciona android.jetifier.blacklist = butterknife. * \\. Jar porque testei não funcionou. Você apenas adiciona classpath 'com.jakewharton: butterknife-gradle-plugin: 9.0.0-rc2' e então funcionará ao depurar e exportar o arquivo apk sem problemas.
kimcy929

Mais informações podem ser encontradas aqui issuetracker.google.com/issues/119135578#comment5
Jude Fernandes

1
Esta resposta está correta, mas dê uma olhada em: stackoverflow.com/a/54345816/371749 atualizar butterknife para 10, também resolve esse problema de uma maneira melhor.
cV2

Esta solução funciona bem para compilação de depuração, mas não consigo criar APK de versão assinada. O artefato fornecido contém um literal de string com uma referência de pacote 'android.support.v4.widget' que não pode ser reescrito com segurança. Bibliotecas que usam reflexão, como processadores de anotação, precisam ser atualizadas manualmente para adicionar suporte para androidx.
Arpit Rastogi

muito útil, obrigado
Androider

60

Adicione a última versão da dependência butterknive. Você pode verificar aqui se ela mudar ( https://github.com/JakeWharton/butterknife ). Suporta androidX. Em seguida, vá para o graddle de compilação do seu aplicativo e substitua a versão anterior pela seguinte:

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

27

Para androidx, basta atualizar suas dependências para a versão '10 .0.0 '

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

Procure a documentação aqui


Minha caixa de texto de edição Click fornece um ponteiro nulo. não é inicializar.
Vasudev Vyas

18

Atualize ButterKnife para a versão mais recente e certifique-se de adicioná-los ao seu build.gradle (app):

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

melhor resposta, após a atualização, pesquisei esta solução -> Erro: métodos de interface estáticos são suportados apenas a partir do Android N (--min-api 24): void butterknife.Unbinder.lambda $ static $ 0 ()
avisper

te amo cara você fez isso ... eu perdi metade do dia procurando então essa resposta vem.
Zeeshan Mehdi

1

Qual versão do Butterknife você usa? A última versão 9.0.0-rc2 suporta androidx.

UPD: há um problema fechado no repositório github do butterknife . Solução temporária

Adicione android.jetifier.blacklist = butterknife-compiler ao arquivo gradle.properties.


Estou em 9.0.0-rc2 e estou recebendo exatamente o mesmo erro
Jorge Gil


1

Meu projeto não usa butterknife, mas eu tive o mesmo erro "O artefato fornecido contém uma string literal com uma referência de pacote 'android.support.v4.widget' que não pode ser reescrita com segurança. Bibliotecas que usam reflexão, como processadores de anotação, precisam ser atualizado manualmente para adicionar suporte para androidx "Foi o que fiz para resolver: atualize a versão do seu parceler

arquivo de compilação do gradle

Substituir:

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

Com:

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

código de arquivo gradle visualização de arquivo gradle


0

mudança

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

para

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

ou outros Temas Materiais. Recebi este erro depois de iniciar um novo projeto com "Sem atividade" no Android Studio 4.0.1


0

atualizar butterknife + invalidar cache e reiniciar + sincronizar gradle se buterknife não for usado apenas limpar o cache e reiniciar

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.