Agontuk / react-native-geolocation-service

React native geolocation service for iOS and android
https://www.npmjs.com/package/react-native-geolocation-service
MIT License
1.61k stars 292 forks source link

[CRASH][ANDROID] Got crash from java lib #235

Closed kperreau closed 3 years ago

kperreau commented 3 years ago

Hello.

Some of my users got this crash from crashlytics report on Android devices.

Error: Attempt to invoke virtual method 'double android.location.Location.getLatitude()' on a null object reference

Stack Trace:

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'double android.location.Location.getLatitude()' on a null object reference
       at com.google.maps.api.android.lib6.gmm6.api.m.c(m.java:1)
       at com.google.maps.api.android.lib6.impl.de.f(de.java:1)
       at com.google.android.gms.maps.internal.ag.aX(ag.java:1)
       at ds.onTransact(ds.java:4)
       at android.os.Binder.transact(Binder.java:914)
       at com.google.android.gms.internal.maps.zza.zzb(zza.java:20)
       at com.google.android.gms.maps.internal.zzai.zza(zzai.java:5)
       at com.google.android.gms.maps.zzm.onLocationChanged(zzm.java:2)
       at com.airbnb.android.react.maps.FusedLocationSource$1.onSuccess(FusedLocationSource.java:46)
       at com.airbnb.android.react.maps.FusedLocationSource$1.onSuccess(FusedLocationSource.java:43)
       at com.google.android.gms.tasks.zzn.run(zzn.java:4)
       at android.os.Handler.handleCallback(Handler.java:883)
       at android.os.Handler.dispatchMessage(Handler.java:100)
       at com.google.android.gms.internal.tasks.zzb.dispatchMessage(zzb.java:6)
       at android.os.Looper.loop(Looper.java:228)
       at android.app.ActivityThread.main(ActivityThread.java:7782)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:981)

Usage:

  useEffect(() => {
    Geolocation.getCurrentPosition(
      val => {
        if (val.coords) {
          setMyLocation(val.coords);
        }
      },
      error => {
        console.log('Error gps: ', error);
      },
      { enableHighAccuracy: true, timeout: 15000, maximumAge: 10000 }
    );
  }, []);

Versions:

    "react": "16.13.1",
    "react-native": "0.63.4",
    "react-native-geolocation-service": "^5.1.1",

Android: 10 Devices: realme 5pro, Redmi Note 9, Redmi Note 7, Mi A3, Redmi Note 8T, Galaxy S9, Galaxy A51, Redmi Note 9 Pro

Looks like it only appear on Android 10. Thx for your help.

Agontuk commented 3 years ago

This should not happen in my opinion, but thanks for reporting this. I'll try to find out which caused this.

kperreau commented 3 years ago

Up, still an issue.

Got the crash on Android 11 with a Pixel 3a phone.

Agontuk commented 3 years ago
com.airbnb.android.react.maps.FusedLocationSource$1.onSuccess(FusedLocationSource.java:46)

this is coming from the react-native-maps library I think, you should open an issue there. Sorry I didn't notice this before.

kperreau commented 3 years ago

Yes you're right sorry. Fixed on the lastest react-native-maps package.

Agontuk commented 3 years ago

Great, closing this.