Lyokone / flutterlocation

A Flutter plugin to easily handle realtime location in iOS and Android. Provides settings for optimizing performance or battery.
MIT License
1.11k stars 812 forks source link

App crash when first time execution #129

Closed cronos88 closed 5 years ago

cronos88 commented 5 years ago

When I install the app and accept permissions, app crash. When I run it again, works fine.

Location: 2.0.0

This is my log:

00:00 W/Activity: Can reqeust only one set of permissions at a time 00:00 E/flutter: [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: PlatformException(ERROR_ALREADY_REQUESTING_PERMISSIONS, A request for permissions is already running, please wait for it to finish before doing another request (note that you can request multiple permissions at the same time)., null) 00:00 E/flutter: #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:564) 00:00 E/flutter: #1 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:302) 00:00 E/flutter: 00:00 E/flutter: #2 PermissionHandler.requestPermissions (package:permission_handler/src/permission_handler.dart:66) 00:00 E/flutter: 00:00 E/flutter: #3 WeatherApiProvider.fetchCurrentConditions (package:weather_bloc/src/resources/weather_api_provider.dart:29) 00:00 E/flutter: 00:00 E/flutter: #4 Repository.fetchWeatherData (package:weather_bloc/src/resources/repository.dart:9) 00:00 E/flutter: #5 ConditionsBloc.fetchConditions (package:weather_bloc/src/blocs/conditions_bloc.dart:12) 00:00 E/flutter: 00:00 E/flutter: #6 _WeatherAppState.didChangeAppLifecycleState (package:weather_bloc/src/ui/weather_app.dart:36) 00:00 E/flutter: #7 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.handleAppLifecycleStateChanged (package:flutter/src/widgets/binding.dart:521) 00:00 E/flutter: #8 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._handleLifecycleMessage (package:flutter/src/scheduler/binding.dart:252) 00:00 E/flutter: 00:00 E/flutter: #9 BasicMessageChannel.setMessageHandler. (package:flutter/src/services/platform_channel.dart:65) 00:00 E/flutter: 00:00 E/flutter: #10 BinaryMessages.handlePlatformMessage (package:flutter/src/services/platform_messages.dart:73) 00:00 E/flutter: 00:00 E/flutter: #11 _invoke3. (dart:ui/hooks.dart:253) 00:00 E/flutter: #12 _rootRun (dart:async/zone.dart:1124) 00:00 E/flutter: #13 _CustomZone.run (dart:async/zone.dart:1021) 00:00 E/flutter: #14 _CustomZone.runGuarded (dart:async/zone.dart:923) 00:00 E/flutter: #15 _invoke3 (dart:ui/hooks.dart:252) 00:00 E/flutter: #16 _dispatchPlatformMessage (dart:ui/hooks.dart:126) 00:00 E/MethodChannel#flutter.baseflow.com/permissions/methods: Failed to handle method call 00:00 E/MethodChannel#flutter.baseflow.com/permissions/methods: java.lang.IllegalStateException: Reply already submitted 00:00 E/MethodChannel#flutter.baseflow.com/permissions/methods: at io.flutter.view.FlutterNativeView$PlatformMessageHandlerImpl$1.reply(FlutterNativeView.java:197) 00:00 E/MethodChannel#flutter.baseflow.com/permissions/methods: at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler$1.success(MethodChannel.java:204) 00:00 E/MethodChannel#flutter.baseflow.com/permissions/methods: at com.baseflow.permissionhandler.PermissionHandlerPlugin.processResult(PermissionHandlerPlugin.java:406) 00:00 E/MethodChannel#flutter.baseflow.com/permissions/methods: at com.baseflow.permissionhandler.PermissionHandlerPlugin.handlePermissionsRequest(PermissionHandlerPlugin.java:397) 00:00 E/MethodChannel#flutter.baseflow.com/permissions/methods: at com.baseflow.permissionhandler.PermissionHandlerPlugin.access$000(PermissionHandlerPlugin.java:34) 00:00 E/MethodChannel#flutter.baseflow.com/permissions/methods: at com.baseflow.permissionhandler.PermissionHandlerPlugin$1.onRequestPermissionsResult(PermissionHandlerPlugin.java:126) 00:00 E/MethodChannel#flutter.baseflow.com/permissions/methods: at io.flutter.app.FlutterPluginRegistry.onRequestPermissionsResult(FlutterPluginRegistry.java:191) 00:00 E/MethodChannel#flutter.baseflow.com/permissions/methods: at io.flutter.app.FlutterActivityDelegate.onRequestPermissionsResult(FlutterActivityDelegate.java:129) 00:00 E/MethodChannel#flutter.baseflow.com/permissions/methods: at io.flutter.app.FlutterActivity.onRequestPermissionsResult(FlutterActivity.java:137) 00:00 E/MethodChannel#flutter.baseflow.com/permissions/methods: at android.app.Activity.requestPermissions(Activity.java:4120) 00:00 E/MethodChannel#flutter.baseflow.com/permissions/methods: at androidx.core.app.ActivityCompat.requestPermissions(ActivityCompat.java:502) 00:00 E/MethodChannel#flutter.baseflow.com/permissions/methods: at com.baseflow.permissionhandler.PermissionHandlerPlugin.requestPermissions(PermissionHandlerPlugin.java:352) 00:00 E/MethodChannel#flutter.baseflow.com/permissions/methods: at com.baseflow.permissionhandler.PermissionHandlerPlugin.onMethodCall(PermissionHandlerPlugin.java:209) 00:00 E/MethodChannel#flutter.baseflow.com/permissions/methods: at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:201) 00:00 E/MethodChannel#flutter.baseflow.com/permissions/methods: at io.flutter.view.FlutterNativeView$PlatformMessageHandlerImpl.handleMessageFromDart(FlutterNativeView.java:188) 00:00 E/MethodChannel#flutter.baseflow.com/permissions/methods: at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:202) 00:00 E/MethodChannel#flutter.baseflow.com/permissions/methods: at android.os.MessageQueue.nativePollOnce(Native Method) 00:00 E/MethodChannel#flutter.baseflow.com/permissions/methods: at android.os.MessageQueue.next(MessageQueue.java:323) 00:00 E/MethodChannel#flutter.baseflow.com/permissions/methods: at android.os.Looper.loop(Looper.java:136) 00:00 E/MethodChannel#flutter.baseflow.com/permissions/methods: at android.app.ActivityThread.main(ActivityThread.java:6123) 00:00 E/MethodChannel#flutter.baseflow.com/permissions/methods: at java.lang.reflect.Method.invoke(Native Method) 00:00 E/MethodChannel#flutter.baseflow.com/permissions/methods: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) 00:00 E/MethodChannel#flutter.baseflow.com/permissions/methods: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757) 00:00 E/FlutterNativeView: Uncaught exception in binary message listener 00:00 E/FlutterNativeView: java.lang.IllegalStateException: Reply already submitted 00:00 E/FlutterNativeView: at io.flutter.view.FlutterNativeView$PlatformMessageHandlerImpl$1.reply(FlutterNativeView.java:197) 00:00 E/FlutterNativeView: at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:219) 00:00 E/FlutterNativeView: at io.flutter.view.FlutterNativeView$PlatformMessageHandlerImpl.handleMessageFromDart(FlutterNativeView.java:188) 00:00 E/FlutterNativeView: at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:202) 00:00 E/FlutterNativeView: at android.os.MessageQueue.nativePollOnce(Native Method) 00:00 E/FlutterNativeView: at android.os.MessageQueue.next(MessageQueue.java:323) 00:00 E/FlutterNativeView: at android.os.Looper.loop(Looper.java:136) 00:00 E/FlutterNativeView: at android.app.ActivityThread.main(ActivityThread.java:6123) 00:00 E/FlutterNativeView: at java.lang.reflect.Method.invoke(Native Method) 00:00 E/FlutterNativeView: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) 00:00 E/FlutterNativeView: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)

cronos88 commented 5 years ago

I solved this error. This is my code, please change the readme for fix example:

LocationData currentLocation; Location location = location();

try { position = await location.getLocation(); } on PlatformException { currentLocation = null; }

Lyokone commented 5 years ago

Hey ! It is now updated, thank you ;)