Aplicación cordova android es compilada satisfactoriamente pero no inicia en Android version 4.2 o menor

Este incómodo y frustrante problema le ocurre a pocos desarrolladores segun reportes de los problemas reportados en cordova. Además el unico mensaje de "error" que obtendrás al compilar tu aplicación será por ejemplo:

BUILD SUCCESSFUL

Total time: 3.43 secs
Built the following apk(s):
    C:\android\myproject-hello\platforms\android\build\outputs\apk\android-debug.apk
Installing app on emulator...
Using apk: C:\android\myproject-hello\platforms\android\build\outputs\apk\android-debug.apk
Launching application...
LAUNCH SUCCESS

Nada parece estár mal segun este mensaje, nuestra aplicación fue satisfactoriamente compilada pero por algun motivo al ejecutar en un emulador o dispositivo esta no inicia. Si eres uno de estos desafortunados desarrolladores, estarás en este momento volviendote lentamente loco. Afortunadamente la solución es bastante sencilla, pero no fácil de descubrir.

Los comandos para compilar la aplicación tienen 2 parámetros que hacen que tu aplicación no funcione en dicha versión de android. Para ello debemos modificar estos comandos que se encuentran en 2 archivos de javascript diferentes.

Si estás usando el emulador solamente, deberás editar el archivo emulator.js. Si estás usando solamente un dispositivo para tus pruebas, deberás editar el archivo device.js. De todas maneras te recomendamos modificar ambos para evitar confusiones en un futuro.

La localización de los dos archivos son las siguientes:

  1. device.js (editar si usas un dispositivo): platforms\android\cordova\lib\device.js
  2. emulator.js (editar si usas un emulador): platforms\android\cordova\lib\emulator.js

y a continuación procede a cambiar la siguiente línea (en device.js cerca de la línea 102 y en emulator.js cerca de la línea 313):

adb -s ' + resolvedTarget.target + ' install -r -d "' + apk_path + '"

Por:

adb -s ' + resolvedTarget.target + ' install -r "' + apk_path + '"

Como puedes ver, simplemente se remueve el parámetro -d de la línea y tu problema estará resuelto.

Finalmente estáras listo para compilar nuevamente y probar si funciona. Que te diviertas !

Esto podría ser de tu interes

Conviertete en un programador más sociable