Suporte para o AndroidX
Closed this issue · 13 comments
A Google parou de atualizar a Support Library e recomenda que daqui em diante nós devemos trocar as dependências, substituindo todas as referências da Support Library para as referências do AndroidX. Isso impacta diretamente na utilização da PlugPag, porque internamente ela utiliza classes da Support (mais precisamente a classe Pair) no código nativo. Como essa utilização é no código nativo, o Jetifier não consegue atualizar a lib da PlugPag para usar o AndroidX, causando um crash na lib. Existe alguma previsão para lançar uma versão da PlugPag com suporte ao AndroidX? Se a utilização do código nativo for apenas da classe Pair (não pude verificar isso), é possível substituir pela implementação da Pair pelo próprio SDK do Android, ao invés da Pair do Support, com isso o Jetifier talvez consiga adequar a PlugPag corretamente.
@lucamenor, vou analisar essa issue e te respondo assim que eu tiver alguma informação.
Peço desculpas pela demora para responder, mas ainda não fizemos a alteração.
Vou confirmar se há algum prazo para essa modificação e o aviso assim que eu tiver uma resposta.
Seria bem interessante tirar essa dependência da Support Library, porque várias atualizações e novas features das libs do Android são apenas para o AndroidX.
Nada?
@hhideki alguma novidade? O Google anunciou que as novas versões do Firebase e do Play Services irão utilizar o androidx internamente. A lib da pagseguro está segurando nosso projeto nas libs de support.
@hhideki, poderias dar um feedback do andamento?
@hhideki a Google já lançou atualizações do Firebase e do Play Services, nas quais eles utilizam os pacotes androidx como dependência. Vocês não podem dar uma estimativa? Quando tentei utilizar a plugpag com androidx com o auxílio do jetifier, o problema que deu foi no código nativo que se conecta ao pinpad, visto que o jetifier não consegue alterar o código nativo. Os códigos java que dependiam das classes de suporte foram atualizados sem problemas com o jetifier, apenas o nativo que deu problema. E pelo que pude ver na stacktrace o código nativo utilizava a classe Pair do pacote de suporte. Se a lib nativa utilizar apenas essa classe, vocês poderiam criar uma classe Pair própria ou utilizar outra coisa. Não vejo com bons olhos essa dependência de um código nativo para uma lib externa, ainda mais que ele sofreu essa grande alteração para se tornar o pacote androidx.
@lucamenor eu não tive problemas com o sdk no Android nativo, poderia ser algo no seu framework híbrido?
PS: eu quase evitei de usar esse sdk quando eu li que não tinha suporte para o androidx, para os programadores que virem essa mensagem "o sdk funciona com androidx, ao menos no nativo"
@FilipeLipan eu utilizo Android nativo também, não é híbrido. Mas eu estava utilizando a versão 3.1.1 e vi que houve uma atualização da biblioteca (versão 3.1.2) na qual adicionaram uma classe Pair no pacote util, provavelmente substituindo o uso do Pair da Support Library. Era justamente essa classe que estava sendo utilizada no jni das versões anteriores e que impedia o Jetifier de adaptar a lib para o androidX. Ainda não fiz o teste com essa versão mais nova, mas acredito que irá resolver esse problema. Assim que fizer os testes darei algum retorno aqui na issue.
@hhideki você pode confirmar se nessa versão (3.1.2) a adição da classe Pair no pacote de util foi justamente por conta desses problemas do Jetifier?
@hhideki Confirmo o que o @FilipeLipan e o @lucamenor escreveram acima.
Confirmo que o problema foi corrigido. Estou fechando a issue.