microg / microg/GmsCore

[com.amber.p33.ambermobility] Hard crash on most actions

Open
#1,428 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Java
Stars
14.6k
Forks
3.2k
Avg merge
12d 11h
Merged PRs (30d)
4

Description

Affected app
Name: Amber
Package id: com.amber.p33.ambermobility

Describe the bug
This app hard crashes on almost any action. This makes it pretty much impossible to use.

To Reproduce
Steps to reproduce the behavior:

  1. Log in
  2. Press a button (e.g. change to a different tab with the bottom toolbar)
  3. Observe crash

Expected behavior
No crash

Screenshots
N.A.

System
Android Version: 10
Custom ROM: LineageOS 17.1

microG
microG Core version: 0.2.17.204714
microG Self-Check results: All ticked

Additional context
I do have a backtrace, since I know the developer of the app:

2020-12-11 13:25:18.055 12856-12856/com.amber.p33.ambermobility E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.amber.p33.ambermobility, PID: 12856
    java.lang.IllegalStateException: Calling getSourceAs when a newer style is loading/has loaded.
        at com.mapbox.mapboxsdk.maps.Style.validateState(Style.java:777)
        at com.mapbox.mapboxsdk.maps.Style.getSourceAs(Style.java:148)
        at com.mapbox.mapboxsdk.location.SymbolLocationLayerRenderer.refreshSource(SymbolLocationLayerRenderer.java:321)
        at com.mapbox.mapboxsdk.location.SymbolLocationLayerRenderer.updatePulsingUi(SymbolLocationLayerRenderer.java:289)
        at com.mapbox.mapboxsdk.location.LocationLayerController$5.onNewAnimationValue(LocationLayerController.java:299)
        at com.mapbox.mapboxsdk.location.LocationLayerController$5.onNewAnimationValue(LocationLayerController.java:292)
        at com.mapbox.mapboxsdk.location.MapboxAnimator.postUpdates(MapboxAnimator.java:104)
        at com.mapbox.mapboxsdk.location.MapboxAnimator.onAnimationUpdate(MapboxAnimator.java:91)
        at com.mapbox.mapboxsdk.location.PulsingLocationCircleAnimator.onAnimationUpdate(PulsingLocationCircleAnimator.java:6)
        at android.animation.ValueAnimator.animateValue(ValueAnimator.java:1558)
        at android.animation.ValueAnimator.animateBasedOnTime(ValueAnimator.java:1349)
        at android.animation.ValueAnimator.doAnimationFrame(ValueAnimator.java:1481)
        at android.animation.AnimationHandler.doAnimationFrame(AnimationHandler.java:146)
        at android.animation.AnimationHandler.access$100(AnimationHandler.java:37)
        at android.animation.AnimationHandler$1.doFrame(AnimationHandler.java:54)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:965)
        at android.view.Choreographer.doCallbacks(Choreographer.java:791)
        at android.view.Choreographer.doFrame(Choreographer.java:722)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:952)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:940)

My guess is that there is an issue with how mapbox is used by microg. However I am not sure, so if this is a mapbox bug I will report it there. The app works fine on Android phones without an alternative Play Services implementation

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the crash on Android 10 with microG 0.2.17.204714 and the Amber app, then trace the reported Mapbox calls from Style.validateState through SymbolLocationLayerRenderer.refreshSource. Compare behavior with standard Play Services and determine whether the fix belongs in GmsCore or Mapbox integration; done means tab changes and other actions no longer crash.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.