J'utilise la fonctionnalité de flux pour les mises à jour de localisation en temps réel et j'ai rencontré un problème. Lorsque ma position est fixée dans le simulateur, la mise à jour fonctionne normalement mais lorsque je règle l'emplacement sur déplacement (simulateur-> debug-> location-> city run), une exception est levée:
[VERBOSE-2:shell.cc(184)] Dart Error: Unhandled exception:
PlatformException(ERROR_UPDATING_LOCATION, The operation couldn’t be completed. (kCLErrorDomain error 0.), null)
#0 _rootHandleUncaughtError.<anonymous closure> (dart:async/zone.dart:1112:29)
#1 _microtaskLoop (dart:async/schedule_microtask.dart:41:21)
#2 _startMicrotaskLoop (dart:async/schedule_microtask.dart:50:5)
L'emplacement est mis à jour sans lever d'exception
var locationOptions =
LocationOptions(accuracy: LocationAccuracy.high, distanceFilter: 10);
geolocator.getPositionStream(locationOptions).listen((Position position) {
print("New pos update: $position");
if (position != null)
setState(() {
_position = position;
});
});
Version: 2.1.1
Plate-forme:
J'ai un problème similaire - Utiliser le flux pour les mises à jour de localisation en temps réel et j'ai rencontré un problème. Lorsque ma position est fixée dans le simulateur, la mise à jour fonctionne normalement. Mettez à jour la position à partir du débogage / de l'emplacement plusieurs fois et cette erreur se produit
[VERBOSE-2: ui_dart_state.cc (148)] Exception non gérée: PlatformException (ERROR_UPDATING_LOCATION, l'opération n'a pas pu être terminée. (Erreur kCLErrorDomain 0.), null)
Config
Utilisation du géolocalisateur: "3.0.0"
Simulateur iOS (12.1) et appareil (12.1.4)
J'étudie cette question plus en détail, je mettrai à jour bientôt.
Fonctionne correctement sur le simulateur iOS 10.1, 11.1
en utilisant - simulator-> debug-> location-> freeway drive
Échec le 12.1
en utilisant - simulator-> debug-> location-> freeway drive
PlatformException (ERROR_UPDATING_LOCATION, l'opération n'a pas pu être terminée.
exemple de géolocalisateur échoue sur 12.1
J'ai le même problème
Vrai. Cela arrive même avec l'exemple fourni.
Salut, je vois le même problème, mais pour moi, j'ai d'abord essayé le «vélo de ville» et cela a fonctionné! Mais ensuite, il a échoué lors du passage à "city run" avec cette erreur.
Ainsi, City Bicycle Ride pourrait être un profil que vous pouvez utiliser entre-temps.
Edit 1: Et maintenant, le mode vélo a également cessé de fonctionner!
Edit 2: la désinstallation de l'application et la réactivation de l'accès à la localisation ont résolu ce problème pour moi.
Je vois cela aussi. J'ai fait cela comme un travail autour:
StreamSubscription<Position> _positionStream;
void _streamLocation() {
// TODO: initialize _positionStream
_positionStream.onError((e) {
print("error streaming position: $e");
_disposePositionStream();
_streamLocation();
});
}
void _disposePositionStream() {
if (_positionStream != null) {
_positionStream.cancel();
_positionStream = null;
}
}
Le redémarrage du flux semble le faire fonctionner maintenant.
REMARQUE : ce n'est pas la meilleure façon de gérer cela en annulant le _positionStream
alors qu'il est encore utilisé par onError
.
Vous obtenez toujours cette erreur en utilisant l'exemple d'application
Single semble fonctionner, bien que signale parfois null, le flux échoue après quelques mises à jour.
PlatformException (ERROR_UPDATING_LOCATION, l'opération n'a pas pu être terminée. (Erreur kCLErrorDomain 0.), null)
Config (maintenant)
Utilisation du géolocalisateur: "5.1.1 + 1"
Simulateur iOS (12.4) et appareil (10.xx)
Au moyen d'un test de piratage.
LocationTask.m
Cela fonctionne de manière fiable sur le simulateur 12.4 et 10.3
Rappelez-vous le débogage du simulateur, l'emplacement doit parfois être expulsé plusieurs fois avant de changer.
Pensées?
Avoir le même problème après la mise à jour de la bibliothèque vers la dernière version. Après quelques tests, nous avons constaté que les exceptions se déclenchaient lorsque le WiFi est activé, si activer la 3G, cela fonctionne correctement. Des solutions pour ça?
Avoir un problème similaire. J'essaye de suivre un cours de londonappbrewery. J'obtiens les exceptions suivantes! Je ne sais pas comment y remédier: /
Code:
Lorsque j'appuie sur le bouton, cela montre:
Lancement de lib / main.dart sur iPhone Xʀ en mode débogage ...
Exécution de la compilation Xcode ...
Construction de Xcode terminée. 24,1 s
Synchronisation des fichiers avec l'appareil iPhone Xʀ ...
[VERBOSE-2: ui_dart_state.cc (148)] Exception non gérée: PlatformException (ERROR_UPDATING_LOCATION, l'opération n'a pas pu être terminée. (Erreur kCLErrorDomain 0.), null)
J'ai également essayé de l'exécuter sur le simulateur Android (Pixel 3a API 28). Cela a fonctionné mais malheureusement, il fournit des coordonnées incorrectes. La différence de coordonnées est énorme. Par exemple, j'essaie d'obtenir un emplacement du Pakistan et de son emplacement de projection quelque part aux États-Unis.
J'ai rencontré le même problème, ma solution est:
Déboguer -> Emplacement ->
Lorsque j'ai coché ici, ni «Aucun» ni «Emplacement personnalisé» n'ont été sélectionnés, j'ai sélectionné une option comme vous le voyez et cela a fonctionné.
Voir également cela pour les appareils iOS en production sur Sentry. Je n'utilise pas de mises à jour de localisation en temps réel, juste des appels à getCurrentPosition
/ getLastKnownPosition
PlatformException: PlatformException(ERROR_UPDATING_LOCATION, The operation couldn’t be completed. (kCLErrorDomain error 0.), null)
File "message_codecs.dart", line 569, in StandardMethodCodec.decodeEnvelope
File "framework.dart", line 3919, in ComponentElement.mount
File "framework.dart", line 3101, in Element.inflateWidget
File "framework.dart", line 2904, in Element.updateChild
File "framework.dart", line 5127, in SingleChildRenderObjectElement.mount
File "framework.dart", line 3101, in Element.inflateWidget
File "framework.dart", line 2904, in Element.updateChild
File "framework.dart", line 3961, in ComponentElement.performRebuild
File "framework.dart", line 3738, in Element.rebuild
File "framework.dart", line 3924, in ComponentElement._firstBuild
File "framework.dart", line 4088, in StatefulElement._firstBuild
File "framework.dart", line 3919, in ComponentElement.mount
.
.
.
Des idées?
Le code suivant crée la même erreur pour moi:
import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart';
class LoadingScreen extends StatefulWidget {
<strong i="6">@override</strong>
_LoadingScreenState createState() => _LoadingScreenState();
}
class _LoadingScreenState extends State<LoadingScreen> {
void getLocation() async {
Position position = await Geolocator()
.getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
print(position);
}
<strong i="7">@override</strong>
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: RaisedButton(
onPressed: () {
getLocation();
},
child: Text('Get Location'),
),
),
);
}
}
Android Studio 3.5.3
Build # AI-191.8026.42.35.6010548, construit le 15 novembre 2019
JRE: 1.8.0_202-release-1483-b49-5587405 x86_64
JVM: VM serveur OpenJDK 64 bits par JetBrains sro
macOS 10.15.2
géolocalisateur-5.1.5
location_permissions-2.0.3
version flutter: v1.13.5
Fonctionnant sur similator: Iphone 11 Pro Max 13.3
Comme suggéré par @softronaut , la définition de l'emplacement dans l'application du simulateur éliminera l'erreur. Alors peut-être qu'un message d'erreur amélioré serait utile. Dans mon cas, l'erreur était due au fait qu'aucun emplacement n'avait été défini.
Avoir un problème similaire. J'essaye de suivre un cours de londonappbrewery. J'obtiens les exceptions suivantes! Je ne sais pas comment y remédier: /
Code:
Lorsque j'appuie sur le bouton, cela montre:
Lancement de lib / main.dart sur iPhone Xʀ en mode débogage ...
Exécution de la compilation Xcode ...
Construction de Xcode terminée. 24,1 s
Synchronisation des fichiers avec l'appareil iPhone Xʀ ...
[VERBOSE-2: ui_dart_state.cc (148)] Exception non gérée: PlatformException (ERROR_UPDATING_LOCATION, l'opération n'a pas pu être terminée. (Erreur kCLErrorDomain 0.), null)0 StandardMethodCodec.decodeEnvelope (package: flutter / src / services / message_codecs.dart: 569: 7)
1 MethodChannel.invokeMethod (package: flutter / src / services / platform_channel.dart: 316: 33)
2 Geolocator.getCurrentPosition (package: geolocator / geolocator.dart: 103: 32)
3 _LoadingScreenState.getLocation (paquet: clima / screens / loading_screen.dart: 12: 10)
4 _LoadingScreenState.build. (paquet: clima / screens / loading_screen.dart: 22: 13)
5 _InkResponseState._handleTap (package: flutter / src / material / ink_well.dart: 654: 14)
6 _InkResponseState.build. (paquet: flutter / src / material / ink_well.dart: 729: 32)
7 GestureRecognizer.invokeCallback (paquet: flutter / src / gestures / Recognizer.dart: 182: 24)
8 <…>
J'ai également essayé de l'exécuter sur le simulateur Android (Pixel 3a API 28). Cela a fonctionné mais malheureusement, il fournit des coordonnées incorrectes. La différence de coordonnées est énorme. Par exemple, j'essaie d'obtenir un emplacement du Pakistan et de son emplacement de projection quelque part aux États-Unis.
corrigé en suivant le simulateur iOS -> Fonctionnalités -> Emplacement -> Emplacement personnalisé ...
Vous devez définir votre emplacement personnalisé sur le simulateur sous fonctionnalités> emplacement> emplacement personnalisé
locati onManager: didUpdateLocations :
[CurrentLocationTask dealloc]
[LocationTask dealloc]
J'ai suivi iOS Simulator -> Fonctionnalités -> Emplacement -> Emplacement personnalisé et maintenant je reçois le message ci-dessus. Qu'est-ce que c'est?
J'ai rencontré le même problème, ma solution est:
Déboguer -> Emplacement ->Lorsque j'ai coché ici, ni «Aucun» ni «Emplacement personnalisé» n'ont été sélectionnés, j'ai sélectionné une option comme vous le voyez et cela a fonctionné.
J'ai dû définir cette option plusieurs fois maintenant. Pour une raison quelconque, de temps en temps, le paramètre se réinitialise. Quelqu'un sait pourquoi c'est?
Mis à jour, c'est maintenant dans Fonctionnalités -> Emplacement -> Sélectionnez une option
Résolu dans la version 6.0.0
Commentaire le plus utile
J'ai rencontré le même problème, ma solution est:
Déboguer -> Emplacement ->
Lorsque j'ai coché ici, ni «Aucun» ni «Emplacement personnalisé» n'ont été sélectionnés, j'ai sélectionné une option comme vous le voyez et cela a fonctionné.