PhoneGap no dispara deviceready en Android 4.2

He creado una aplicación con el create.bat en ventanas y compilado con ADT y el SDK más reciente.

Se lanza y muestra la pantalla cordova, pero no disparar el evento deviceready como sigue diciendo "conectar al dispositivo". Lo mismo se aplica al emulador. Funciona cuando cambio el OS a 4.0 para el emulador sin embargo.

¿Es esto normal porque 4.2 acaba de ser lanzado y tengo que esperar para una actualización?

Es 1 am y finalmente tengo mi aplicación corriendo de nuevo. Android 4.2 incluye algunos cambios aparentemente relacionados con la seguridad de webView.addJavascriptInterface, que detiene el modo predeterminado de puente de trabajo.

Espero que haya una solución mejor en la próxima versión, pero si necesita una solución rápida, pruebe esta actualización a CordovaWebView.exposeJsInterface

private void exposeJsInterface() { int SDK_INT = Build.VERSION.SDK_INT; boolean isHoneycomb = (SDK_INT >= Build.VERSION_CODES.HONEYCOMB && SDK_INT <= Build.VERSION_CODES.HONEYCOMB_MR2); if (isHoneycomb || (SDK_INT < Build.VERSION_CODES.GINGERBREAD)) { Log.i(TAG, "Disabled addJavascriptInterface() bridge since Android version is old."); // Bug being that Java Strings do not get converted to JS strings automatically. // This isn't hard to work-around on the JS side, but it's easier to just // use the prompt bridge instead. return; } else if (SDK_INT < Build.VERSION_CODES.HONEYCOMB && Build.MANUFACTURER.equals("unknown")) { // addJavascriptInterface crashes on the 2.3 emulator. Log.i(TAG, "Disabled addJavascriptInterface() bridge callback due to a bug on the 2.3 emulator"); return; } else if (SDK_INT == Build.VERSION_CODES.JELLY_BEAN_MR1) { Log.i(TAG, "Disabled addJavascriptInterface() bridge callback for 4.2"); return; } this.addJavascriptInterface(exposedJsApi, "_cordovaNative"); } 

Tuve el mismo problema en mi Nexus 7 con Android 4.2, pero funciona cuando cambio el targetSdkVersion de AndroidManifest a "16"

 <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" /> (Before it was ="17") 

Espero que esto funcione para alguien.

Diego

En mi caso auto generado index.html se refería a phonegap.js

Así que en lugar de

 <script type="text/javascript" src="phonegap.js"></script> 

pongo

 <script type="text/javascript" src="cordova.js"></script> 

Aparentemente esto se soluciona en Phonegap 2.3.0 .

También encontré este problema en Android 4.2, mi proyecto estaba utilizando Phonegap 2.2.

Actualizado siguiendo este simple procedimiento de actualización – problema resuelto.

Por lo tanto, después de la actualización a 2.3.0, la configuración de android:targetSdkVersion="17" está bien de nuevo.

Otra causa de esto es que su cordova-2.3.0.jar puede no coincidir con la versión del archivo cordova-2.3.0.js.

He resuelto mi problema mediante la eliminación de cualquier error en el archivo js (Index.js).

Usted debe asegurarse de que usted javascript no tiene ningún error.

  • Los eventos de análisis de Firebase no muestran valor
  • Buscando un evento más universal onUserInteraction () - no solo en una actividad
  • Cordova 3.4 - Detectar evento de teclado
  • Androide ndk multitouch
  • Custom android.app.Application no disparar evento onCreate
  • android cómo escribir onclick evento de edittext
  • Android: ¿Por qué un clic largo también activa un clic normal?
  • SDK de Android: ¿Cómo salir del estado de la oficina para eventos de Calendario?
  • Cordova backbutton evento no funciona
  • Crear evento de Facebook en una aplicación para Android
  • ¿Puedo escuchar los eventos de toque de Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.