terça-feira, 1 de setembro de 2015

Problemas com a biblioteca apache no android 6

Fiquei duas horas e meia tentando resolver ontem, mais uma hora e meia hoje. Meu problema era um erro que encontrei no meu projeto, com a biblioteca do apache, para fazer webrequests. Achava que o problema era a migração para o Android Studio. E eu não pretendo voltar ao eclipse.

O erro que aparece é:

"error: package org.apache.http does not exist"

Procurei na internet e encontrei diversas recomendações. A primeira foi adicionar uma biblioteca do apache na lista de dependencies. Adicionei, mas ele ainda não encontrava a classe org.apache.http.client.utils.URLEncodedUtils. Uma outra sugestão foi forçar o uso da biblioteca apache, colocando o código android { useLibrary 'org.apache.http.legacy' } no gradle.

Encontrei pessoas falando para usar uma biblioteca chamada Volley, que deve substituir a do apache. E pensei em ajustar o projeto para usar. Descobri que a LVL, biblioteca do android para verificar licença, não está adaptada. Não encontrei qualquer versão dela que estivesse. Mesmo a versão oficial do site. Só bastante gente xingando por não terem adaptado ainda, pois a versão Marshmallow do android (6.0) vai cortar a biblioteca apache.

Nesse momento, me dei conta de que tinha atualizado o arquivo gradle para usar a última API do Android, a 23, do Marshmallow, assim que migrei para o Android Studio. Estava usando a API 19 como máxima antes, muito atrasado. Mudei para 22. Tudo voltou a funcionar.