O Phonegap é uma ótima ferramenta para desenvolver aplicativos móveis híbridos, entretanto, é uma ferramenta recente e existem poucas informações na internet sobre ele, isto acaba causando um atraso no desenvolvimento quando um erro acontece. Este post reúne alguns dos erros mais comuns e como resolvê-los.
Como identificar erros no PhoneGap?
A maioria dos erros no PhoneGap ficam “escondidos” no meio dos logs exibidos pelo console, mas basta rolar a janela até encontrar o texto “FAILURE: Build failed with an exception“, a descrição do erro sempre estará na linha acima desta frase ai, veja a imagem.
O erro acima ocorre quando executamos o comando phonegap build.
Neste caso o erro ocorre porque o PhoneGap está procurando pelo recurso “icon” que será usado pelo arquivo Manifest do Android, porém, o arquivo não existe, para resolver o problema basta adicionar um arquivo icon.png na raiz do projeto. No caso deste aplicativo ficaria C:\xampp\htdocs\musicasdeninar\icon.png, depois de adicionar o arquivo basta executar o comando novamente.
The SDK directory: ‘[um_diretorio_qualquer]’ does not exists
Onde [um_diretorio_qualquer] indica um diretório onde deveria existir a instalação do Android SDK, ou seja, o aplicativo foi gerado em uma instalação do Android SDK diferente, então, sempre que você tenta rodar phonegap build android este erro irá ocorrer porque o SDK não foi encontrado.
Para resolver basta, remover a plataforma android deste aplicativo e adiciona-la novamente, para isto basta rodar o comando phonegap platform rm android e após o processamento rode phonegap platform add android e por fim basta rodar o build executando phonegap build android.
Failure [install_failed_updated_incompatible]
Durante a tentativa de instalar o aplicativo em algum ambiente de testes ou dispositivo utilizando a conexão USB o erro INSTALL_FAILED_UPDATED_INCOMPATIBLE. Este erro informa que houve uma falha ao tentar instalar uma atualização que é incompartível com a instalação atual. Este erro acontece especificamente quando já existe uma versão do APP no celular, tablet ou emulador onde você está tentando rodar o comando phonegap run [sistema] ou phonegap install [sistema].
Em 06/08/2014 uma falha de segurança foi identificada no Cordova, para resolver o problema é necessário atualizar o phonegap para a versão 3.5.1 (ou superior). A questão é que após atualizar o phonegap, sempre que você tentar rodar um teste o erro install_failed_updated_incompatible será apresentado, isto é causado pela incompatibilidade entre a estrutura do Cordova antivo e a versão nova. A solução para este problema se resume a remover a instalação do aplicativo que você está desenvolvendo do dispositivo onde você está testando e rodar novamente o teste.
Também pode se tratar de um APK com o mesmo nome mas a assinatura é diferente.
Failure [INSTALL_FAILED_VERSION_DOWNGRADE]
Ocorre quando você tenta rodar uma versão antiga de um app e o dispositivo onde você está tentando rodar já possui a versão mais recente. Basta modificar a versão do app no arquivo AndroidManisfest.xml adicionando no parâmetro android:versionName um valor igual ou superior a versão anterior do aplicativo móvel.
Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]
Ocorre quando o certificado do aplicativo é diferente (ou inválido) do existente e instalado no dispositivo móvel.
Desinstalar aplicação via linha de comando
Pode ser que você tente desinstalar o aplicativo e mesmo assim os erros acima continuem ocorrendo, neste caso, você precisará fazer a desinstalação do app via linha de comando, para isso, é necessário que o dispositivo móvel ou emulador esteja em funcionamento, em seguida abra o prompt de comando e digite os seguintes comandos:
$ adb shell
$ adb uninstall com.example.seuapp
Se tudo correu bem você deverá receber a resposta “Success”, agora basta instalar novamente o aplicativo.
Atualizar Phonegap
Eventualmente você precisará atualizar a versão do Phonegap, você pode fazer isso facilmente através de linha de comando no Windows, basta executar no prompt de comando
$ sudo npm update -g phonegap
Você também pode verificar a versão do Phonegap instalado utilizando o comando
$ phonegap version