Android y PhoneGap – Error al llamar al método en NPObject

Estoy intentando establecer FLAG_SHOW_WHEN_LOCKED en mi aplicación de teléfono, pero sólo cuando se muestra una determinada página. Para ello, tengo un complemento de Java que se extiende desde CordovaPlugin con el siguiente código en el método execute :

 if (action.equals("showWhenLocked")) { boolean showWhenLocked = args.getBoolean(0); if (showWhenLocked) { this.cordova.getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); } else { this.cordova.getActivity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); } callbackContext.success(); return true; } 

Se llama con cordova.exec(null, null, 'MyPluginClass', 'showWhenLocked', [myVar]) , pero en la ejecución obtengo el error

 Uncaught Error: Error calling method on NPObject. at file:///android_asset/www/cordova-2.2.0.js:984 

Cualquier idea que está causando esto / lo que estoy haciendo mal y cómo solucionarlo? Si establezco la bandera sobre la creación de la actividad que funciona muy bien.

He encontrado ya que este tipo de error puede ser causado por llamadas que requieren hilos que no están disponibles. Su uso de getWindow() me dice que esto es aún más probable. Es más probable que acceda a la información bloqueada por otro hilo, como el hilo de la interfaz de usuario. Echa un vistazo a la documentación cordova en la sección sobre el subproceso en el subproceso de la interfaz de usuario.

Utilizando:

 callbackContext.success(); 

Llamará explícitamente a la devolución de llamada de éxito, pero en su caso la devolución de llamada de éxito es nula por lo que es por qué obtienes el error.

Trate de usar:

 callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK)); 

De esa manera la llamada de exec devuelve pero el JS comprobará para ver si hay una devolución de llamada de éxito antes de intentar llamarlo.

La adición de android-support-v4.jar a la ruta de construcción del proyecto y comprobar su entrada en Order and Export (tab) de Build path funciona para mí. – Gracias, Prodeveloper

  • Ampliar la actividad del cajón de navegación a otras actividades
  • Android: ¿Cómo pausar y reanudar un temporizador de cuenta atrás?
  • Borrar una imagen girada en Android no muestra borrar la ruta correcta
  • Botón para Android Onclick
  • ¿Cómo leer datos de Firebase ONCE usando java / android?
  • Java.security.UnrecoverableKeyException: sin coincidencia
  • Después de importar Android Project en Eclipse, los iconos de paquete son "blanco"
  • Google android maps api v2 Mostrar el título del marcador Siempre
  • No ver la interfaz de EditNameDialogListener
  • Android.app.ServiceConnectionLeaked: Activity ... MainActivity ha filtrado ServiceConnection ... MainActivity $ 1 @ e794142 que estaba vinculado originalmente aquí
  • Android volley Excepción de tiempo de espera al utilizar RequestFuture.get ()
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.