Flutter-geolocator: استثناء على IOS

تم إنشاؤها على ١٤ فبراير ٢٠١٩  ·  21تعليقات  ·  مصدر: Baseflow/flutter-geolocator

🐛 تقرير الشوائب

أنا أستخدم ميزة البث لتحديثات الموقع في الوقت الفعلي وواجهت مشكلة. عندما يكون موقعي ثابتًا في المحاكي ، يعمل التحديث بشكل طبيعي ولكن عندما أقوم بتعيين الموقع للتحرك (محاكاة-> تصحيح-> الموقع-> تشغيل المدينة) ، يتم طرح استثناء:

[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)

سلوك متوقع

يتم تحديث الموقع دون استثناء

خطوات الاستنساخ

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;
        });
    });

إعدادات

الإصدار: 2.1.1.1

برنامج:

  • [x]: iphone: iOS
  • []: الروبوت: Android
ios bug up for graps

التعليق الأكثر فائدة

واجهت نفس المشكلة ، الحل الخاص بي هو:
التصحيح -> الموقع ->

Screen Shot 2019-10-17 at 4 28 02 PM

عندما راجعت هنا ، لم يتم تحديد "لا شيء" ولا "موقع مخصص" ، قمت بتحديد خيار كما تراه وعمل.

ال 21 كومينتر

لدي مشكلة مماثلة - استخدام البث لتحديثات الموقع في الوقت الفعلي وواجهت مشكلة. عندما يتم إصلاح موقعي في جهاز المحاكاة ، يعمل التحديث بشكل طبيعي. قم بتحديث الموضع من التصحيح / الموقع عدة مرات ويحدث هذا الخطأ

[VERBOSE-2: ui_dart_state.cc (148)] استثناء غير معالج: PlatformException (ERROR_UPDATING_LOCATION ، تعذر إكمال العملية. (خطأ kCLErrorDomain 0.) ، فارغ)

التكوين
باستخدام geolocator: "3.0.0"

iOS Simulator (12.1) والجهاز (12.1.4)

أنا بصدد التحقيق في هذا الأمر ، سيتم التحديث قريبًا.

يعمل بشكل صحيح على iOS simulator 10.1 ، 11.1
باستخدام - محاكاة-> تصحيح-> الموقع-> محرك الطريق السريع

فشل في 12.1
باستخدام - محاكاة-> تصحيح-> الموقع-> محرك الطريق السريع
PlatformException (ERROR_UPDATING_LOCATION ، تعذر إكمال العملية.

فشل مثال geolocator في 12.1

screenshot 2019-02-19 at 14 28 04

انا لدى نفس المشكله

حقيقي. يحدث حتى مع المثال المقدم.

مرحبًا ، أرى نفس المشكلة ، لكن بالنسبة لي حاولت "ركوب الدراجات في المدينة" أولاً ، وقد نجح ذلك! ولكن بعد ذلك فشلت عند التبديل إلى "إدارة المدينة" مع هذا الخطأ.

لذلك قد يكون City Bicycle Ride ملفًا شخصيًا يمكنك استخدامه في الوقت الحالي.

تحرير 1: والآن توقف وضع الدراجة عن العمل أيضًا!
تحرير 2: أدى إلغاء تثبيت التطبيق وإعادة السماح بالوصول إلى الموقع إلى إصلاح هذه المشكلة بالنسبة لي.

أنا أرى هذا أيضًا. لقد فعلت هذا كعمل حول:

  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;
    }
  }

يبدو أن إعادة تشغيل البث تجعله يعمل الآن.

ملاحظة : هذه ليست الطريقة المثلى للتعامل مع هذا مع إلغاء _positionStream بينما لا يزال قيد الاستخدام بواسطة onError .

لا يزال هذا الخطأ يحصل على هذا الخطأ باستخدام مثال التطبيق
يبدو أن المنفرد يعمل ، على الرغم من أنه يتم الإبلاغ أحيانًا عن أنه فارغ ، إلا أن الدفق يفشل بعد بعض التحديثات.

PlatformException (ERROR_UPDATING_LOCATION ، تعذر إكمال العملية. (خطأ kCLErrorDomain 0.) ، فارغ)

التكوين (الآن)
باستخدام أداة تحديد الموقع الجغرافي: "5.1.1 + 1"

iOS Simulator (12.4) والجهاز (10.xx)

عن طريق اختبار هاك ..

الموقع

  • (باطل) locationManager: (CLLocationManager *) manager didFailWithError: (NSError *) خطأ {{
    NSLog (@ "٪ s"، sel_getName (_cmd)) ؛
    // [السياق الذاتي] resultHandler ؛
    [self stopTask] ؛
    [self startTask] ؛ // سامحني...
    }

يعمل هذا بشكل موثوق على Simulator 12.4 و 10.3
تذكر المحاكي Debug ، يجب أحيانًا تشغيل الموقع عدة مرات قبل أن يتغير.

أفكار؟

تواجه نفس المشكلة بعد تحديث المكتبة إلى أحدث إصدار. بعد بعض الاختبارات ، وجدنا أن الاستثناءات تبدأ عند تشغيل WiFi ، إذا تم تمكين 3g ، فإنه يعمل بشكل صحيح. أي حلول لهذا؟

وجود مشكلة مماثلة. أحاول إكمال دورة من londonappbrewery. أحصل على الاستثناءات التالية! لا أعرف كيفية إصلاحه: /

شفرة:
Screenshot 2019-10-03 at 9 55 17 PM

عندما أضغط على الزر يظهر:

جاري تشغيل lib / main.dart على iPhone Xʀ في وضع التصحيح ...
تشغيل بناء Xcode ...
اكتمل بناء Xcode. 24.1 ثانية
مزامنة الملفات مع جهاز iPhone Xʀ ...
[VERBOSE-2: ui_dart_state.cc (148)] استثناء غير معالج: PlatformException (ERROR_UPDATING_LOCATION ، تعذر إكمال العملية. (خطأ kCLErrorDomain 0.) ، فارغ)

0 StandardMethodCodec.decodeEnvelope (الحزمة: flutter / src / services / message_codecs.dart: 569: 7)

1 MethodChannel.invokeMethod (الحزمة: flutter / src / services / platform_channel.dart: 316: 33)

2 Geolocator.getCurrentPosition (الحزمة: geolocator / geolocator.dart: 103: 32)

3 _LoadingScreenState.getLocation (الحزمة: clima / screens / loading_screen.dart: 12: 10)

4 _LoadingScreenState.build.(الحزمة: clima / screens / loading_screen.dart: 22:13)

5 _InkResponseState._handleTap (الحزمة: flutter / src / material / ink_well.dart: 654: 14)

6 _InkResponseState.build.(العبوة: رفرفة / src / material / ink_well.dart: 729: 32)

7 GestureRecognizer.invokeCallback (الحزمة: رفرفة / src / الإيماءات / أداة التعرف. الجزء: 182: 24)

8 <…>

لقد حاولت أيضًا تشغيله على محاكي android (Pixel 3a API 28). لقد نجحت ولكن للأسف ، توفر إحداثيات غير صحيحة. الفرق في الإحداثيات كبير. مثل ، أحاول الحصول على موقع من باكستان وموقع عرضه في مكان ما في الولايات المتحدة الأمريكية.

252 ألق نظرة على هذا ولاحظ ما إذا كانت لديك مشاكل مشتركة. هل يمكنك أيضًا تزويدني ببعض المعلومات حول الدورة التدريبية حتى أعرف ما أبحث عنه؟

واجهت نفس المشكلة ، الحل الخاص بي هو:
التصحيح -> الموقع ->

Screen Shot 2019-10-17 at 4 28 02 PM

عندما راجعت هنا ، لم يتم تحديد "لا شيء" ولا "موقع مخصص" ، قمت بتحديد خيار كما تراه وعمل.

نرى هذا أيضًا لأجهزة iOS قيد الإنتاج على Sentry. أنا لا أستخدم تحديثات الموقع في الوقت الفعلي ، فقط مكالمات إلى 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
.
.
.

أفكار؟

الكود التالي يخلق نفس الخطأ بالنسبة لي:

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
بناء # AI-191.8026.42.35.6010548 ، تم إنشاؤه في 15 نوفمبر 2019
JRE: 1.8.0_202-release-1483-b49-5587405 x86_64
JVM: خادم OpenJDK 64 بت VM بواسطة JetBrains sro
macOS 10.15.2

geolocator-5.1.5
location_permissions-2.0.3
إصدار الرفرفة: v1.13.5

يعمل على المحاكاة: Iphone 11 Pro Max 13.3

كما اقترح softronaut ، فإن تعيين الموقع في تطبيق المحاكاة سيؤدي إلى التخلص من الخطأ. لذلك ربما تساعد رسالة خطأ محسّنة. في حالتي ، كان الخطأ بسبب عدم تعيين موقع.

وجود مشكلة مماثلة. أحاول إكمال دورة من londonappbrewery. أحصل على الاستثناءات التالية! لا أعرف كيفية إصلاحه: /

شفرة:
Screenshot 2019-10-03 at 9 55 17 PM

عندما أضغط على الزر يظهر:

جاري تشغيل lib / main.dart على iPhone Xʀ في وضع التصحيح ...
تشغيل بناء Xcode ...
اكتمل بناء Xcode. 24.1 ثانية
مزامنة الملفات مع جهاز iPhone Xʀ ...
[VERBOSE-2: ui_dart_state.cc (148)] استثناء غير معالج: PlatformException (ERROR_UPDATING_LOCATION ، تعذر إكمال العملية. (خطأ kCLErrorDomain 0.) ، فارغ)

0 StandardMethodCodec.decodeEnvelope (الحزمة: flutter / src / services / message_codecs.dart: 569: 7)

1 MethodChannel.invokeMethod (الحزمة: flutter / src / services / platform_channel.dart: 316: 33)

2 Geolocator.getCurrentPosition (الحزمة: geolocator / geolocator.dart: 103: 32)

3 _LoadingScreenState.getLocation (الحزمة: clima / screens / loading_screen.dart: 12: 10)

4 _LoadingScreenState.build. (الحزمة: clima / screens / loading_screen.dart: 22:13)

5 _InkResponseState._handleTap (الحزمة: flutter / src / material / ink_well.dart: 654: 14)

6 _InkResponseState.build. (العبوة: رفرفة / src / material / ink_well.dart: 729: 32)

7 GestureRecognizer.invokeCallback (الحزمة: رفرفة / src / الإيماءات / أداة التعرف. الجزء: 182: 24)

8 <…>

لقد حاولت أيضًا تشغيله على محاكي android (Pixel 3a API 28). لقد نجحت ولكن للأسف ، توفر إحداثيات غير صحيحة. الفرق في الإحداثيات كبير. مثل ، أحاول الحصول على موقع من باكستان وموقع عرضه في مكان ما في الولايات المتحدة الأمريكية.

تم إصلاحه باتباع محاكي iOS -> الميزات -> الموقع -> الموقع المخصص ...

يجب عليك تعيين موقع مخصص لك على جهاز المحاكاة ضمن الميزات> الموقع> الموقع المخصص

locati onManager: didUpdateLocations :
[إلغاء تخصيص CurrentLocationTask]
[LocationTask dealloc]

لقد اتبعت iOS Simulator -> الميزات -> الموقع -> الموقع المخصص والآن أتلقى الرسالة أعلاه. ما هذا؟

واجهت نفس المشكلة ، الحل الخاص بي هو:
التصحيح -> الموقع ->

Screen Shot 2019-10-17 at 4 28 02 PM

عندما راجعت هنا ، لم يتم تحديد "لا شيء" ولا "موقع مخصص" ، قمت بتحديد خيار كما تراه وعمل.

اضطررت إلى تعيين هذا الخيار عدة مرات الآن. لسبب ما بين الحين والآخر ، يعيد الإعداد ضبط نفسه. أي شخص يعرف لماذا هذا؟

تم التحديث ، هذا الآن في الميزات -> الموقع -> حدد خيارًا

حل في الإصدار 6.0.0

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات