Baseflow / Baseflow/flutter-geolocator
[Bug]: LOCATION UPDATE FAILURE:Error reason: (null)Error description: The operation couldn’t be completed. (kCLErrorDomain error 1.)
- Dominant language
- Dart
- Stars
- 1.3k
- Forks
- 803
- Avg merge
- 8h 16m
- Merged PRs (30d)
- 1
Description
### Please check the following before submitting a new issue.
- [X] I have searched the [existing issues](https://github.com/baseflow/flutter-geolocator/issues).
- [X] I have carefully [read the documentation](https://github.com/Baseflow/flutter-geolocator/blob/main/geolocator/README.md) and verified I have added the required platform specific configuration.
### Please select affected platform(s)
- [ ] Android
- [X] iOS
- [ ] Linux
- [ ] macOS
- [ ] Web
- [ ] Windows
### Steps to reproduce
Steps to reproduce
1. Setup the Flutter app: Integrate the Geolocator package into a Flutter project.
2. Request location permissions: Include the necessary permissions (NSLocationWhenInUseUsageDescription, NSLocationAlwaysUsageDescription, etc.) in the Info.plist file.
3. Invoke Geolocator: Attempt to retrieve the current location using Geolocator.getCurrentPosition() or listen to location updates using Geolocator.getPositionStream().
4. Run the app on an iOS device: Deploy the app to an iOS device (not an emulator) and monitor the logs for any errors.
### Expected results
The app should request location permissions if not already granted, and then successfully retrieve the current location of the device, either once via getCurrentPosition() or continuously via getPositionStream().
### Actual results
Unhandled Exception: The operation couldn’t be completed. (kCLErrorDomain error 1.)
### Code sample
This is the logic i used in my code?
```dart
Future _requestLocationPermission() async {
if (_isRequestingPermission) return;
_isRequestingPermission = true;
try {
var status = await Permission.locationWhenInUse.request();
if (status.isGranted) {
_loadInitialLocation();
} else {
// Handle permission denial
}
} finally {
_isRequestingPermission = false;
}
}
// Future _requestLocationPermission() async {
// var status = await Permission.locationWhenInUse.request();
// if (status.isGranted) {
// _loadInitialLocation();
// } else {
// // Handle permission denial
// }
// }
Future _getCurrentLocation() async {
_currentPosition = await geolocator.Geolocator.getCurrentPosition(locationSettings: const geolocator.LocationSettings(accuracy: geolocator.LocationAccuracy.high));
if (!mounted) return;
//_initialCameraOptions = _getCameraOptions(_currentPosition);
_mapboxMap.flyTo(_getCameraOptions(_currentPosition), MapAnimationOptions(duration: 1000));
_updateLocationPuck();
}
void _enableLocationUpdates() {
geolocator.Geolocator.getPositionStream(
locationSettings: const geolocator.LocationSettings(accuracy: geolocator.LocationAccuracy.high)
).listen((geolocator.Position position) {
if (!mounted) return;
setState(() {
_currentPosition = position;
_updateLocationPuck();
});
});
}
```
### Screenshots or video
```
LOCATION UPDATE FAILURE:Error reason: (null)Error description: The operation couldn’t be completed. (kCLErrorDomain error 1.)
[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: The operation couldn’t be completed. (kCLErrorDomain error 1.)
#0 GeolocatorApple.getPositionStream. (package:geolocator_apple/src/geolocator_apple.dart:188:9)
#1 Stream.handleError. (dart:async/stream.dart:931:16)
#2 _HandleErrorStream._handleError (dart:async/stream_pipe.dart:269:17)
#3 _ForwardingStreamSubscription._handleError (dart:async/stream_pipe.dart:157:13)
#4 _RootZone.runBinaryGuarded (dart:async/zone.dart:1606:10)
#5 _BufferingStreamSubscription._sendError.sendError (dart:async/stream_impl.dart:384:15)
#6 _BufferingStreamSubscription._sendError (dart:async/stream_impl.dart:402:7)
#7 _BufferingStreamSubscription._addError (dart:async/stream_impl.dart:306:7)
#8 _ForwardingStreamSubscription._addError (dart:async/stream_pipe.dart:128:11)
#9 _ForwardingStream._handleError (dart:async/stream_pipe.dart:95:10)
#10 _ForwardingStreamSubscription._handleError (dart:async/stream_pipe.dart:157:13)
#11 _RootZone.runBinaryGuarded (dart:async/zone.dart:1606:10)
#12 _BufferingStreamSubscription._sendError.sendError (dart:async/stream_impl.dart:384:15)
#13 _BufferingStreamSubscription._sendError (dart:async/stream_impl.dart:402:7)
#14 _BufferingStreamSubscription._addError (dart:async/stream_impl.dart:306:7)
#15 _SyncBroadcastStreamController._sendError. (dart:async/broadcast_stream_controller.dart:392:20)
#16 _BroadcastStreamController._forEachListener (dart:async/broadcast_stream_controller.dart:322:15)
#17 _SyncBroadcastStreamController._sendError (dart:async/broadcast_stream_controller.dart:391:5)
#18 _AsBroadcastStreamController.addError (dart:async/broadcast_stream_controller.dart:486:5)
#19 _RootZone.runBinaryGuarded (dart:async/zone.dart:1606:10)
#20 _BufferingStreamSubscription._sendError.sendError (dart:async/stream_impl.dart:384:15)
#21 _BufferingStreamSubscription._sendError (dart:async/stream_impl.dart:402:7)
#22 _DelayedError.perform (dart:async/stream_impl.dart:552:14)
#23 _PendingEvents.handleNext (dart:async/stream_impl.dart:646:11)
#24 _PendingEvents.schedule. (dart:async/stream_impl.dart:617:7)
#25 _microtaskLoop (dart:async/schedule_microtask.dart:40:21)
#26 _startMicrotaskLoop (dart:async/schedule_microtask.dart:49:5)
```
### Version
13.0.1
### Flutter Doctor output
[✓] Flutter (Channel stable, 3.22.2, on macOS 14.5 23F79 darwin-x64, locale en-US)
• Flutter version 3.22.2 on channel stable at /Users/aditiallady/devlopment/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 761747bfc5 (2 months ago), 2024-06-05 22:15:13 +0200
• Engine revision edd8546116
• Dart version 3.4.3
• DevTools version 2.34.3
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
• Android SDK at /Users/aditiallady/Library/Android/sdk
• Platform android-34, build-tools 34.0.0
• Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 15.4)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 15F31d
• CocoaPods version 1.15.2
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2023.3)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)
[✓] VS Code (version 1.92.0)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.94.0
[✓] Connected device (5 available)
• sdk gphone64 x86 64 (mobile) • emulator-5554 • android-x64 • Android 14 (API 34) (emulator)
• Aditi’s iPhone (mobile) • 00008130-000E21A004298D3A • ios • iOS 17.5.1 21F90
• iPhone 15 Pro Max (mobile) • 1F14C548-F714-4573-8B73-4DA1E72B59A1 • ios • com.apple.CoreSimulator.SimRuntime.iOS-17-5 (simulator)
• macOS (desktop) • macos • darwin-x64 • macOS 14.5 23F79 darwin-x64
• Chrome (web) • chrome • web-javascript • Google Chrome 127.0.6533.101
[✓] Network resources
• All expected network resources are available.
• No issues found!
Contributor guide
Assessment
This issue has not been assessed yet.