michalchudziak / react-native-geolocation

Geolocation APIs for React Native
MIT License
1.28k stars 220 forks source link

Android crash when I set the locationProvider to playServices(Some times) #241

Open TianFengRL opened 1 year ago

TianFengRL commented 1 year ago

Environment

Galaxy S22 Ultra Galaxy S20 FE 5G Galaxy A73 5G Redmi K40

Platforms

Android

Versions

Description

This bug is not inevitable. I can't reproduce it. But it appears many times in the firebase crash statistics.

Location: PlayServicesLocationManager$1.onLocationResult com.reactnativecommunity.geolocation PlayServicesLocationManager.java:74

log: Fatal Exception: java.lang.NullPointerException: Listener must not be null at com.google.android.gms.common.internal.Preconditions.checkNotNull(com.google.android.gms:play-services-basement@@18.1.0:2) at com.google.android.gms.common.api.internal.ListenerHolders.createListenerKey(com.google.android.gms:play-services-base@@18.0.1:1) at com.google.android.gms.location.FusedLocationProviderClient.removeLocationUpdates(com.google.android.gms:play-services-location@@20.0.0:6) at com.reactnativecommunity.geolocation.PlayServicesLocationManager$1.onLocationResult(PlayServicesLocationManager.java:74) at com.google.android.gms.internal.location.zzaw.notifyListener(com.google.android.gms:play-services-location@@20.0.0:2) at com.google.android.gms.common.api.internal.ListenerHolder.zaa(com.google.android.gms:play-services-base@@18.0.1:2) at com.google.android.gms.common.api.internal.zacb.run(:4) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:236) at android.app.ActivityThread.main(ActivityThread.java:8057) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:656) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:967)

Reproducible Demo

Geolocation.getCurrentPosition( (info) => { }, (error) => { }, { enableHighAccuracy: true, maximumAge: 20 1000, timeout: 10 1000, }, );

BraveEvidence commented 1 year ago

This will help https://www.youtube.com/watch?v=E7X9DjezSR0

mrsasuuBeast commented 1 year ago

Same here. It was not happening before when the locationProvider was set 'auto'