O que é Jetifier? Por exemplo, para criar um novo projeto usando as dependências empacotadas do androidx, esse novo projeto precisa adicionar a seguinte linha ao arquivo gradle.properties :
android.enableJetifier=true
Então, o que significa - "ativar o jetificador"?
implementation "com.commonsware.cwac:document:0.3.0"
em seudependencies
. Essa versão da biblioteca tem uma dependência transitiva decom.android.support:support-annotations:27.0.2
. No entanto, você deseja usarandroidx.annotation:annotation
como parte do uso de outras dependências do AndroidX. Jetifier iria de alguma forma atualizarcom.commonsware.cwac:document
para usarandroidx.annotation:annotation
.Respostas:
No Google I / O deste ano (18), o Google anunciou o Jetpack que é um conjunto / coleção de bibliotecas para tornar a vida do desenvolvedor mais fácil.
O Jetpack inclui componentes de arquitetura Android introduzidos anteriormente (ViewModel, Room, Paging, LiveData etc.), bem como componentes de arquitetura recém-introduzidos como WorkManager, Navigation. Além disso, o Jetpack também possui outro conjunto de bibliotecas como AndroidX, AndroidKTX etc.
AndroidX é uma nova estrutura de pacote para bibliotecas de suporte Android, como suporte, ligação de dados, design, etc.
por exemplo, agora em wards, os desenvolvedores usarão androidx.databinding. em vez de android.databinding. ao importar bibliotecas em nossos projetos
Isso permite que o Google adicione SemVer ou Controle de versão semântica em seus pacotes de biblioteca. Para desenvolvedores, isso significa que não precisamos usar a mesma versão da biblioteca de suporte para todas as bibliotecas de suporte. Todo suporte ou melhor, a biblioteca AndroidX manterá seu próprio controle de versão.
Outra vantagem para os desenvolvedores é que não precisamos nos preocupar em manter a mesma versão para todas as bibliotecas de suporte em nosso projeto.
Sobre o Jetifier, ele converte todo o pacote de suporte de dependência em tempo de construção. De acordo com a documentação oficial do Jetifier
Para usar o AndroidX em um projeto, temos que definir targetSdkVersion para nosso projeto como 28 e adicionar as 2 linhas seguintes no arquivo gradle.properties .
Espero que isso responda à sua consulta.
EDITAR
Este link possui o mapeamento de todos os componentes da biblioteca de suporte com sua contraparte AndroidX.
Consulte também este blog para obter uma explicação detalhada sobre o AndroidX
fonte
Supondo que você esteja familiarizado
AndroidX
. Se não, por favor veja @ este post .Por exemplo
Se você tem
PhotoView.java
em sua dependência. Que usa biblioteca de suporteAppCompatImageView
.Esta classe foi movida agora para o
androidx
pacote, então comoPhotoView
obter o androidxAppCompatImageView
? E o aplicativo ainda funciona no dispositivo.Quem fez esta corrida?
Jetifier será convertido
android.support.v7.widget.AppCompatImageView
paraandroidx.appcompat.widget.AppCompatImageView
durante a construção do projeto.Conclusão
Ativar o Jetifier é importante ao migrar das bibliotecas de suporte para o AndroidX .
Veja esta postagem para entender mais sobre o AndroidX.
Informações
Seu código pode mostrar erros de tempo de compilação após ativar o Jetifier ao usar classes de dependência. que você pode remover apagando
.idea
,.gradle
e projeto de re-sincronização.fonte
Jetifier ajuda na migração de um projeto Android para AndroidX .
Jetifier ajuda a tornar a biblioteca de terceiros compatível com seu projeto AndroidX.
Se você não estiver usando nenhuma biblioteca de terceiros em seu projeto Android, não precisa usar o Jetifier porque o Jetifier ajuda apenas a "tornar a biblioteca de terceiros" compatível com seu projeto, caso você esteja migrando para o AndroidX. Então, para fazer seu projeto usar o Jetifier, você escreve o código abaixo em gradle.properties .
Se você não estiver migrando para o AndroidX e usando a forma anterior de usar bibliotecas Android (por exemplo: com.android.support ), essas bibliotecas de terceiros não precisam ser compatíveis, pois essas bibliotecas de terceiros já são compatíveis com a forma anterior de usando bibliotecas Android. Nesse caso, você não precisa usar o Jetifier, então agora, você não precisa escrever as linhas fornecidas acima ou pode simplesmente escrever como abaixo para alterar os valores no futuro para mover para o androidx: -
fonte
Jetifier
O jetificador é uma ferramenta útil que migra automaticamente
dependencies
para oAndroidX
no momento da construção. Sem ele, você precisaria de cada dependência usada para ter uma versão do AndroidX antes de poder migrar e isso provavelmente não acontecerá por algum tempo.Há uma limitação importante a ser observada: o jetificador só funciona em artefatos embalados. Não funciona no seu código-fonte, que deve ser atualizado por conta própria
para habilitar o AndroidX, você precisa adicionar 2 sinalizadores ao seu
gradle.properties
arquivo. O primeiro sinalizador diz ao plug-in do Android para usarAndroidX
pacotes em vez deAppCompat
, e o segundo sinalizador habilitaJetifier
:Veja esta , este post para entender mais sobre AndroidX
fonte
Do doc oficial
É útil para compatibilidade. Quando um consumidor usa
androidX
e um produtor usasupport
. Por exemplo, quando seu projeto emAndroidX
deseja usar uma dependência que usa emsupport library
vez deAndroidX
[Exemplo]fonte
Adicione estas duas linhas android.useAndroidX = true
android.enableJetifier = true
em buid.gradle funcionou para mim
fonte