I have my android app with only android.permission.ACCESS_COARSE_LOCATION
. Until flutter version v3.19.x my Android app (let’s call it v1) was working fine.
Now, when I upgraded my flutter to v3.22.0, and try to override my v1 app to v2. It crashes as soon as I access location with logs
D/AndroidRuntime(15185): Shutting down VM
E/AndroidRuntime(15185): FATAL EXCEPTION: main
E/AndroidRuntime(15185): Process: <package-name>, PID: 15185
E/AndroidRuntime(15185): java.lang.SecurityException: Neither user 10186 nor current process has android.permission.ACCESS_FINE_LOCATION.
E/AndroidRuntime(15185): at android.os.Parcel.createExceptionOrNull(Parcel.java:3011)
E/AndroidRuntime(15185): at android.os.Parcel.createException(Parcel.java:2995)
E/AndroidRuntime(15185): at android.os.Parcel.readException(Parcel.java:2978)
E/AndroidRuntime(15185): at android.os.Parcel.readException(Parcel.java:2920)
E/AndroidRuntime(15185): at android.location.ILocationManager$Stub$Proxy.registerGnssNmeaCallback(ILocationManager.java:1614)
E/AndroidRuntime(15185): at android.location.LocationManager$GnssNmeaTransportManager.registerTransport(LocationManager.java:3079)
E/AndroidRuntime(15185): at android.location.LocationManager$GnssNmeaTransportManager.registerTransport(LocationManager.java:3069)
E/AndroidRuntime(15185): at com.android.internal.listeners.ListenerTransportManager.addListener(ListenerTransportManager.java:70)
E/AndroidRuntime(15185): at android.location.LocationManager.addNmeaListener(LocationManager.java:2589)
E/AndroidRuntime(15185): at android.location.LocationManager.addNmeaListener(LocationManager.java:2570)
E/AndroidRuntime(15185): at com.baseflow.geolocator.location.NmeaClient.start(NmeaClient.java:76)
E/AndroidRuntime(15185): at com.baseflow.geolocator.location.FusedLocationClient.requestPositionUpdates(FusedLocationClient.java:157)
E/AndroidRuntime(15185): at com.baseflow.geolocator.location.FusedLocationClient.lambda$startPositionUpdates$2$com-baseflow-geolocator-location-FusedLocationClient(FusedLocationClient.java:240)
E/AndroidRuntime(15185): at com.baseflow.geolocator.location.FusedLocationClient$$ExternalSyntheticLambda2.onSuccess(Unknown Source:4)
E/AndroidRuntime(15185): at com.google.android.gms.tasks.zzm.run(com.google.android.gms:play-services-tasks@@18.1.0:1)
E/AndroidRuntime(15185): at android.os.Handler.handleCallback(Handler.java:942)
E/AndroidRuntime(15185): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(15185): at android.os.Looper.loopOnce(Looper.java:201)
E/AndroidRuntime(15185): at android.os.Looper.loop(Looper.java:288)
E/AndroidRuntime(15185): at android.app.ActivityThread.main(ActivityThread.java:7872)
E/AndroidRuntime(15185): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(15185): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
E/AndroidRuntime(15185): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
E/AndroidRuntime(15185): Caused by: android.os.RemoteException: Remote stack trace:
I know it mentions about ACCESS_FINE_LOCATION
permission. Even after adding it and upgrading app, it crashes.
But if I delete v1 app and freshly installs v2, it works all fine just with existing permission.
I need to fix upgrade scenario as I have a user-base of 50k+ users. Any suggestion will be helpful.