android/fit-samples

Error: Fitness api can't request data for big time intervals [E/JavaBinder: !!! FAILED BINDER TRANSACTION !!!]

Hesowcharov opened this issue · 5 comments

Hello! My google fit app doesn't work for 2 months.
I started to debug the application and I was able to find these errors from adb logcat:

2020-11-22 17:04:48.804 16111-16143/? E/JavaBinder: !!! FAILED BINDER TRANSACTION !!!  (parcel size = 1330200)
E/FitAndroidFutures: While reading data with request: DataReadRequest{bucket by intervals: active_minutes heart_minutes calories.expended distance.delta d:step_count.delta:gms:estimated_steps (2020-11-22 00:00:00 - 2020-11-22 17:04:41) +server}
    him: java.lang.IllegalStateException: hrb: 8: 
        at hii.a(Unknown Source:4)
        at qei.a(PG:2)
        at rhf.e(Unknown Source:2)
        at rhh.run(PG:11)
        at rjp.execute(PG:1)
        at rhv.r(PG:1)
        at rhv.n(PG:11)
        at rhv.l(PG:5)
        at rlm.run(PG:10)
...

Please pay attention to the line "FAILED BINDER TRANSACTION !!! (parcel size = 1330200" - google fit can't get the data from the android service because the response is too large to be returned through IPC.

Also, I'm developing an application that uses the fitness api and also I noticed that gms Task api doesn't return anything and even doesn't call "onComplete" listener in similar cases when google fit service can't deliver the result to a requester.
I think a reading task should be completed anyways if Binder fails for some reason.

Hi, i'm facing the same issue. The api cannot handle large runs. Did you find any solutions?

Hi, I'm also facing the same issue, My google fit app have lots of data over the last 3 months. I tried to get these all data used 'setTimeRange' in DataReadRequest, which returns nothing, I mean the data between the range is nearly 1800(approx), and there is no exception printed in logs, also any callbacks not triggered. So we struggle to get total data from GoogleFit. I think the large data responses don't parsable. I request a pagination functionality from the server and the problem may be solved.
Please file the issue and find any solution! Thankyou);-

Hello! My google fit app doesn't work for 2 months. I started to debug the application and I was able to find these errors from adb logcat:

2020-11-22 17:04:48.804 16111-16143/? E/JavaBinder: !!! FAILED BINDER TRANSACTION !!!  (parcel size = 1330200)
E/FitAndroidFutures: While reading data with request: DataReadRequest{bucket by intervals: active_minutes heart_minutes calories.expended distance.delta d:step_count.delta:gms:estimated_steps (2020-11-22 00:00:00 - 2020-11-22 17:04:41) +server}
    him: java.lang.IllegalStateException: hrb: 8: 
        at hii.a(Unknown Source:4)
        at qei.a(PG:2)
        at rhf.e(Unknown Source:2)
        at rhh.run(PG:11)
        at rjp.execute(PG:1)
        at rhv.r(PG:1)
        at rhv.n(PG:11)
        at rhv.l(PG:5)
        at rlm.run(PG:10)
...

Please pay attention to the line "FAILED BINDER TRANSACTION !!! (parcel size = 1330200" - google fit can't get the data from the android service because the response is too large to be returned through IPC.

Also, I'm developing an application that uses the fitness api and also I noticed that gms Task api doesn't return anything and even doesn't call "onComplete" listener in similar cases when google fit service can't deliver the result to a requester. I think a reading task should be completed anyways if Binder fails for some reason.

No worries