mapbox-maps-android icon indicating copy to clipboard operation
mapbox-maps-android copied to clipboard

Crash during animation when useBackgroundThread is set

Open SamuelBrucksch opened this issue 1 year ago • 2 comments

Environment

  • Android OS version: 13
  • Devices affected: Xiaomi Poco F5
  • Maps SDK Version: 10.16.1

A user reported an app crash. This is what we got via bugsnag:

java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.Object android.animation.TypeEvaluator.evaluate(float, java.lang.Object, java.lang.Object)' on a null object reference
        at android.animation.KeyframeSet.getValue(KeyframeSet.java:202)
        at android.animation.PropertyValuesHolder.calculateValue(PropertyValuesHolder.java:1017)
        at android.animation.ValueAnimator.animateValue(ValueAnimator.java:1648)
        at android.animation.ValueAnimator.animateBasedOnTime(ValueAnimator.java:1440)
        at android.animation.ValueAnimator.doAnimationFrame(ValueAnimator.java:1572)
        at android.animation.ValueAnimator.pulseAnimationFrame(ValueAnimator.java:1591)
        at android.animation.AnimatorSet.pulseFrame(AnimatorSet.java:1170)
        at android.animation.AnimatorSet.doAnimationFrame(AnimatorSet.java:1061)
        at android.animation.AnimationHandler.doAnimationFrame(AnimationHandler.java:307)
        at android.animation.AnimationHandler.-$$Nest$mdoAnimationFrame(Unknown)
        at android.animation.AnimationHandler$1.doFrame(AnimationHandler.java:86)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1457)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1467)
        at android.view.Choreographer.doCallbacks(Choreographer.java:1089)
        at android.view.Choreographer.doFrame(Choreographer.java:998)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1435)
        at android.os.Handler.handleCallback(Handler.java:942)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loopOnce(Looper.java:211)
        at android.os.Looper.loop(Looper.java:300)
        at android.os.HandlerThread.run(HandlerThread.java:67)

And then in Threads we got this:

Thread 19401 - MapboxAnimThread - (RUNNABLE)
        at android.animation.KeyframeSet.getValue(KeyframeSet.java:202)
        at android.animation.PropertyValuesHolder.calculateValue(PropertyValuesHolder.java:1017)
        at android.animation.ValueAnimator.animateValue(ValueAnimator.java:1648)
        at android.animation.ValueAnimator.animateBasedOnTime(ValueAnimator.java:1440)
        at android.animation.ValueAnimator.doAnimationFrame(ValueAnimator.java:1572)
        at android.animation.ValueAnimator.pulseAnimationFrame(ValueAnimator.java:1591)
        at android.animation.AnimatorSet.pulseFrame(AnimatorSet.java:1170)
        at android.animation.AnimatorSet.doAnimationFrame(AnimatorSet.java:1061)
        at android.animation.AnimationHandler.doAnimationFrame(AnimationHandler.java:307)
        at android.animation.AnimationHandler.-$$Nest$mdoAnimationFrame(Unknown)
        at android.animation.AnimationHandler$1.doFrame(AnimationHandler.java:86)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1457)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1467)
        at android.view.Choreographer.doCallbacks(Choreographer.java:1089)
        at android.view.Choreographer.doFrame(Choreographer.java:998)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1435)
        at android.os.Handler.handleCallback(Handler.java:942)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loopOnce(Looper.java:211)
        at android.os.Looper.loop(Looper.java:300)
        at android.os.HandlerThread.run(HandlerThread.java:67)

Which makes me believe, that the error comes from Mapbox SDK.

I still remember, that we opened an issue earlier, where Xiaomi devices had issues with rendering in AA, when the phone screen was off: https://github.com/mapbox/mapbox-maps-android/issues/1413

The solution was to toggle an option, that uses a different render thread. However there seems to be an issue with that in rare cases. @kiryldz you worked on that previously, could you please check, if the error is somehow related to that?

SamuelBrucksch avatar Nov 06 '23 14:11 SamuelBrucksch

following

ankiimation avatar Jan 12 '24 09:01 ankiimation

any updates?

ankiimation avatar Mar 04 '24 02:03 ankiimation