diff --git a/packages/location/android/src/main/java/com/lyokone/location/LocationPlugin.java b/packages/location/android/src/main/java/com/lyokone/location/LocationPlugin.java index e6c765ac..33772071 100644 --- a/packages/location/android/src/main/java/com/lyokone/location/LocationPlugin.java +++ b/packages/location/android/src/main/java/com/lyokone/location/LocationPlugin.java @@ -84,7 +84,9 @@ public void onReattachedToActivityForConfigChanges(@NonNull ActivityPluginBindin @Override public void onServiceConnected(ComponentName name, IBinder service) { Log.d(TAG, "Service connected: " + name); - initialize(((FlutterLocationService.LocalBinder) service).getService()); + if(service instanceof FlutterLocationService.LocalBinder){ + initialize(((FlutterLocationService.LocalBinder) service).getService()); + } } @Override @@ -114,12 +116,14 @@ private void dispose() { methodCallHandler.setLocationService(null); methodCallHandler.setLocation(null); - activityBinding.removeRequestPermissionsResultListener(locationService.getServiceRequestPermissionsResultListener()); - activityBinding.removeRequestPermissionsResultListener(locationService.getLocationRequestPermissionsResultListener()); - activityBinding.removeActivityResultListener(locationService.getLocationActivityResultListener()); + if(locationService != null){ + activityBinding.removeRequestPermissionsResultListener(locationService.getServiceRequestPermissionsResultListener()); + activityBinding.removeRequestPermissionsResultListener(locationService.getLocationRequestPermissionsResultListener()); + activityBinding.removeActivityResultListener(locationService.getLocationActivityResultListener()); - locationService.setActivity(null); + locationService.setActivity(null); - locationService = null; + locationService = null; + } } }