Erro ao debuggar google maps (INSTALL_FAILED_MISSING_SHARED_LIBRARY)

Este tutorial apresenta como instalar bibliotecas ou jars personalizadas em dispositivos Android genéricos.

 

Tutorial
——–

Os dispositivos genéricos sempre vêm com a ROM que o fabricante instala de acordo com suas conveniências, possibilidades e interesses. Dessa forma, alguns dispositivos, principalmente chineses (como o caso do GT 7200), vêm com uma ROM um tanto imprevisível em termos de plataforma android instalada. Em geral as plataformas instaladas de fábrica dos dispositivos têm uma qualidade maior que a plataforma adaptada, por exemplo, a ROM em português do Genesis GT 7200 A13. A versão vendida no Brasil já possui uma série de aplicativos instalados, como skype, ungry birds, etc, que não dizem respeito à plataforma original android 4.0.3. Então, alguns fabricantes dão preferência à instalação de aplicativos à instalação de bibliotecas da própria plataforma e bibliotecas satélites importantes como o Google Maps. Podemos dizer que estes dispositivos não dão suporte ao Google Maps. Mas dar suporte a qualquer biblioteca android é a apenas a instalação dos jars correspondentes. Afinal de contas android é java em qualquer lugar.

Quando você estiver testando uma aplicação no emulador AVD e ela funcionar, mas quando vocês testar em um dispositivo e apresentar o seguinte erro INSTALL_FAILED_MISSING_SHARED_LIBRARY , isto significa que sua ROM não possui o jar adequado à sua aplicação. Para resolver este problema, você deve antes identificar o jar necessário. Para isso, você deverá fazer um trabalho de garimpo para supor quais classes não estão presentes na ROM. O exemplo que eu posso dar é o caso do Google Maps.

Uma aplicação que utiliza o Google Maps deve possuir classes que estendem de MapActivity. Então, você pode testar se é essa classe realmente que está faltando chamando o código no início da sua activity principal:

Class.forName(“com.google.android.maps.MapActivity “);

Caso levante a exceção de ClassNotFoundException, com certeza está faltando o jar do Google Maps em sua plataforma. Isso vale para qualquer outro jar. Isso advêm da diretiva <uses-library android:name=”com.google.android.maps”> que você deve colocar dentro do seu arquivo AndroidManifest.xml.

Para resolver o problema é bem simples. Você deve criar um AVD com a mesma plataforma android que seu dispositivo e primeiramente testar sua aplicação. Certifique-se que ela funciona corretamente no emulador. Feito isto, entre no File Explorer do emulador utilizando o Eclipse e entre no file system nos diretórios /system/framework e /system/etc/permissions. No caso específico do Google Maps, procure o jar do Google Maps existente no diretório /system/framework (com.google.android.maps.jar) e o arquivo xml de permissão deste jar no diretório /system/etc/permissions (com.google.android.maps.xml). Copie estes dois arquivos para seu computador. Depois disso, conecte o dispositivo no seu computador e acesse os mesmos diretórios no file system do dispositivo. Seu dispositivo deve ter acesso root (pesquise na internet para descobrir como fazer isso para seu dispositivo). Copie os arquivos de jar e xml agora para dentro do dispositivo nos diretórios corretos. Fique atento às permissões wr dos arquivos. Os arquivos devem ter permissão de leitura e escrita. Reinicie seu dispositivo. A ROM irá carregar para a memória o jar do Google Maps. Este procedimento vale para qualquer outro jar. A moral da história aqui é verificar quais jars e permissions que o emulador tem que seu dispositivo não e copiar exatamente os mesmos jars para seu dispositivo.

A parte mais importante deste tutorial é descobrir a versão correta do jar para a plataforma que você está utilizando. Caso você coloque um jar do Google Maps de versão diferente da plataforma, não vai funcionar. Por isso você deve obter os jars corretos do emulador.

Se você quiser saber mais sobre programação Java, .Net, Android, IOS, Banco de Dados, Análise de Sistemas, Pontos de Função, faça nossos treinamentos e conheça a Framework Training Center – Comprometimento em Qualidade de Ensino.

Posts Relacionados

Obtendo o nível de bateria no Android via linha de... Neste post irei mostrar outro recurso bem importante para trabalhar com sistemas quiosque Android. Precisamos estar sempre atentos ao nível de bateria...
Abrindo a tela de configuração de data (Date Setti... Mais uma vez com o tópico telas de settings do Android, eu apresento como abrir a tela de configuração de data hora - date settings - do Android via l...
Verificando o Vendor e o Product de um Dispositivo... Para verificar se um dispositivo USB foi reconhecido pela porta USB do Android podemos utilizar o comando lsusb. Este comando é muito útil, pois mostr...
Acessando as informações de consumo de memória de ... Este post é muito interessante e extremamente útil para quem desenvolve aplicativos para sistemas em modo quiosque. Quando trabalhamos com este modo, ...

Add Comment

Your email address will not be published. Required fields are marked *

Phone: (31) 3646-1612
Fax: (31) 3646-1614
Loja 01, Lourdes, Belo Horizonte/MG
Rua Rio de Janeiro, 1278