12-06-2018 06:18
12-06-2018 06:18
As a developer myself I had the sync issue this morning with my Ionic only 4 days in since I upgraded from my Charge 2 HR. Well, I restarted the Ionic and it synch'd. However, I remembered too late that I can pull logs from the Android fitbit app. Now that it is synching one would think the logs are clear but they are not. I see the following exception after every sync for dozens of entries. There really should not be a reason for code with the following Exception. I'll try and capture logs on sync failure if it happens to me again.
12-06 09:10:29.613 3632 4579 W Bundle : Key android.icon expected Parcelable but value was a java.lang.Integer. The default value <null> was returned.
12-06 09:10:29.613 3632 4579 W Bundle : Attempt to cast generated internal exception:
12-06 09:10:29.613 3632 4579 W Bundle : java.lang.ClassCastException: java.lang.Integer cannot be cast to android.os.Parcelable
12-06 09:10:29.613 3632 4579 W Bundle : at android.os.Bundle.getParcelable(Bundle.java:946)
12-06 09:10:29.613 3632 4579 W Bundle : at android.app.Notification.fixDuplicateExtra(Notification.java:2780)
12-06 09:10:29.613 3632 4579 W Bundle : at android.app.Notification.fixDuplicateExtras(Notification.java:2770)
12-06 09:10:29.613 3632 4579 W Bundle : at android.app.Notification.readFromParcelImpl(Notification.java:2176)
12-06 09:10:29.613 3632 4579 W Bundle : at android.app.Notification.<init>(Notification.java:2104)
12-06 09:10:29.613 3632 4579 W Bundle : at android.service.notification.StatusBarNotification.<init>(StatusBarNotification.java:104)
12-06 09:10:29.613 3632 4579 W Bundle : at android.service.notification.StatusBarNotification$1.createFromParcel(StatusBarNotification.java:194)
12-06 09:10:29.613 3632 4579 W Bundle : at android.service.notification.StatusBarNotification$1.createFromParcel(StatusBarNotification.java:191)
12-06 09:10:29.613 3632 4579 W Bundle : at android.os.Parcel.readParcelable(Parcel.java:2774)
12-06 09:10:29.613 3632 4579 W Bundle : at android.os.Parcel.readValue(Parcel.java:2668)
12-06 09:10:29.613 3632 4579 W Bundle : at android.os.Parcel.readArrayMapInternal(Parcel.java:3037)
12-06 09:10:29.613 3632 4579 W Bundle : at android.os.BaseBundle.initializeFromParcelLocked(BaseBundle.java:288)
12-06 09:10:29.613 3632 4579 W Bundle : at android.os.BaseBundle.unparcel(BaseBundle.java:232)
12-06 09:10:29.613 3632 4579 W Bundle : at android.os.BaseBundle.getString(BaseBundle.java:1155)
12-06 09:10:29.613 3632 4579 W Bundle : at com.fitbit.device.notifications.listener.service.rpc.servicetoapp.a.a$a.a(SourceFile:67)
12-06 09:10:29.613 3632 4579 W Bundle : at com.fitbit.device.notifications.listener.service.rpc.servicetoapp.eventlisteners.a.a(SourceFile:25)
12-06 09:10:29.613 3632 4579 W Bundle : at com.fitbit.device.notifications.listener.service.rpc.servicetoapp.ListenerServiceMessageHandler$handleMessage$$inlined$forEach$lambda$1.b(SourceFile:47)
12-06 09:10:29.613 3632 4579 W Bundle : at com.fitbit.device.notifications.listener.service.rpc.servicetoapp.ListenerServiceMessageHandler$handleMessage$$inlined$forEach$lambda$1.w_(SourceFile:20)
12-06 09:10:29.613 3632 4579 W Bundle : at com.fitbit.device.notifications.p.c(SourceFile:34)
12-06 09:10:29.613 3632 4579 W Bundle : at com.fitbit.device.notifications.p.b(SourceFile:1)
12-06 09:10:29.613 3632 4579 W Bundle : at com.fitbit.device.notifications.p$a.run(SourceFile:22)
12-06 09:10:29.613 3632 4579 W Bundle : at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:458)
12-06 09:10:29.613 3632 4579 W Bundle : at java.util.concurrent.FutureTask.run(FutureTask.java:266)
12-06 09:10:29.613 3632 4579 W Bundle : at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
12-06 09:10:29.613 3632 4579 W Bundle : at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
12-06 09:10:29.613 3632 4579 W Bundle : at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
12-06 09:10:29.613 3632 4579 W Bundle : at java.lang.Thread.run(Thread.java:764)
12-06-2018 15:55 - edited 12-06-2018 15:56
12-07-2018 05:47
12-07-2018 05:47
Yes. I plug the USB cable into my Mac and the USB-C into the Pixel XL (v1). Then I start on the command line
$ adb logcat
which then spits out the log in realtime. As a result I also discovered some other apps I hardly used were chewing up CPU time with Exceptions of their own so I deleted them as I literally only used the app once the whole time it was installed on my phone.
12-09-2018 10:26
12-09-2018 10:26
Hello @aspexil and @WavyDavey.
@aspexil Thank you for taking the time to share in here with everyone!
If you experience syncing issues in the future, be sure to try the steps listed in this help article. They should definitely help if you are experiencing syncing issues.
Feel free to reach out if you need any assistance.
01-07-2019 12:13
01-07-2019 12:13
@aspexil Are you by any chance also running https://play.google.com/store/apps/details?id=com.eclipsim.gpsstatus2 on your Android device? Because it seems like that I only get this exception when that app is running:
Bundle : Key android.icon expected Parcelable but value was a java.lang.Integer. The default value <null> was returned.
01-07-2019 12:57
01-07-2019 12:57
@ClaimTowers I do have that app installed but have not run it in a long time. I wonder how another app can cause an exception in FitBit. But who knows maybe it is due to installing some bundle that is in the chain of bundles that android goes through? I haven't had a chance to investigate any further.
01-07-2019 13:26
01-07-2019 13:26
One more thing I observed is spamming with this ( between exceptions 😞
12-25 18:20:19.694 5753 6357 W : Failed to write characteristic(adabfb02-6e7d-4601-bda2-bffaa68956ba) service(adabfb00-6e7d-4601-bda2-bffaa68956ba). Retrying(1) because device is busy.
This one seems to be quite interesting as it occurs when synchronisation fails. I guess that's why one of the advice is unpairing Fitbit and/or restarting BT. Such action I guess forces release of the device ( although even though I had issues with syncing ). These messages are spammed quite a lot. Didn't bother to check but maybe "Always Connected" ( which I have always on ) causes problems. Maybe it keeps device busy so when trying to sync the app cannot establish a proper connection with the device because this is already done. But that's just a guess and didn't try to see whether issue occurs if I turn that option off in the app.
01-10-2019 10:03
01-10-2019 10:03
@aspexil It seems like the Fitbit subscribes to status bar notifications in Android and when the "android.icon" field in the notification is of the wrong type... boom! My personal suspicion is that the GPS Status application put data of the wrong type in that field. Or, possibly the other way around, that Fitbit actually expects the wrong type.