Las longitudes incorrectas del arreglo, el encargado de la notificación causan el choque del teléfono en 4.4

Lanzé la aplicación en las pruebas BETA y varios usuarios con dispositivos 4.4 informó de que la aplicación provoca que todo el teléfono se bloquee, teléfono casi reinicia después del lanzamiento de la aplicación, aunque la aplicación ni siquiera tiene tales permisos.

El informe que obtuve de los probadores es el siguiente:

java.lang.RuntimeException: bad array lengths at android.os.Parcel.readIntArray(Parcel.java:820) at android.app.INotificationManager$Stub$Proxy.enqueueNotificationWithTag(INotificationManager.java:348) at android.app.NotificationManager.notify(NotificationManager.java:139) at android.app.NotificationManager.notify(NotificationManager.java:112) at als.wakeup.Awake_Alarm$MyLocationListener.onLocationChanged(Awake_Alarm.java:272) at android.location.LocationManager$ListenerTransport._handleMessage(LocationManager.java:279) at android.location.LocationManager$ListenerTransport.access$000(LocationManager.java:208) at android.location.LocationManager$ListenerTransport$1.handleMessage(LocationManager.java:224) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:157) at android.app.ActivityThread.main(ActivityThread.java:5293) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081) at dalvik.system.NativeStart.main(Native Method) 

Esto funciona bien en 4.2, 4.3, pero parece que Galaxy Note 3 y Galaxy S5 que ejecuta 4.4 reiniciar.

¿Cuál podría ser la causa? ¿Está relacionado con la aplicación o podría ser fallo en el nuevo sistema operativo?

Acabo de descubrir que funciona bien en Xperia Z1 con 4.4 y no se bloquea. Parece que sólo Samsung causa esto, ¿algunos consejos?

Notificación Crear función:

 public Notification CreateNotification(double distance){ Intent notificationIntentStop = new Intent(this.getApplicationContext(), StopService.class); PendingIntent contentIntentStop = PendingIntent.getActivity(this.getApplicationContext(), 0, notificationIntentStop, 0); Bitmap largeIcon = BitmapFactory.decodeResource(getResources(), R.drawable.logo); Shortcuts shorts = new Shortcuts(this); NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.logo) .setContentTitle("Localarm Running") .setLargeIcon(largeIcon); //mBuilder.addAction(R.drawable.ico, "Stop", contentIntentStop); if(distance > 0){ mBuilder.setContentText(String.valueOf(roundTwoDecimals(shorts.ConvertUnits(distance))+" "+shorts.GetUnitNames(distance)+" to Alarm.")); } else{ mBuilder.setContentText(String.valueOf("You've reached your destination")); } mBuilder.setPriority(Notification.PRIORITY_MAX); Notification bui = mBuilder.build(); bui.flags|= Notification.FLAG_NO_CLEAR; Intent notificationIntent = new Intent(this.getApplicationContext(), Intro.class); PendingIntent contentIntent = PendingIntent.getActivity(this.getApplicationContext(), 0, notificationIntent, 0); bui.contentIntent = contentIntent; return bui; } 

Se llama por: onLocationChanged ()

  NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); notificationManager.notify(0, CreateNotification(dist_difference-alert_range)); 

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.