I launched app into BETA testing and multiple users with 4.4 Devices reported that the app causes whole phone to crash, phone pretty much restarts after app launch even though app doesn't even have such permissions.
The report I got from testers is as follows:
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)
This works fine on 4.2, 4.3 but it seems that Galaxy Note 3 and Galaxy S5 which run 4.4 restart.
What could the cause be? Is it app related or could it be glitch in new OS?
Just found out it works fine on Xperia Z1 with 4.4 and no crashes. It seems that only samsung causes this, any tips?
Notification Creating function:
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;
}
it gets called by: onLocationChanged()
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(0, CreateNotification(dist_difference-alert_range));
This is an issue in Android. Unfortunately, I don't think you can do anything about it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With