Flutter-geolocator: java.lang.NullPointerException عند الحصول على موقع في عزلة منفصلة

تم إنشاؤها على ١٨ مارس ٢٠٢٠  ·  6تعليقات  ·  مصدر: Baseflow/flutter-geolocator

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

أتلقى الخطأ عند محاولة الحصول على الموقع في عملية الخلفية بحيث يتم تشغيل المكون الإضافي بشكل منفصل باستخدام workmanager :

Failed to handle method call
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference

إليك بعض تتبع المكدس:

E/MethodChannel#flutter.baseflow.com/google_api_availability/methods( 5234): Failed to handle method call
E/MethodChannel#flutter.baseflow.com/google_api_availability/methods( 5234): java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference
E/MethodChannel#flutter.baseflow.com/google_api_availability/methods( 5234):    at com.google.android.gms.common.GooglePlayServicesUtilLight.isGooglePlayServicesAvailable(Unknown Source:12)
E/MethodChannel#flutter.baseflow.com/google_api_availability/methods( 5234):    at com.google.android.gms.common.GoogleApiAvailabilityLight.isGooglePlayServicesAvailable(Unknown Source:5)
E/MethodChannel#flutter.baseflow.com/google_api_availability/methods( 5234):    at com.google.android.gms.common.GoogleApiAvailability.isGooglePlayServicesAvailable(Unknown Source:94)
E/MethodChannel#flutter.baseflow.com/google_api_availability/methods( 5234):    at com.google.android.gms.common.GoogleApiAvailabilityLight.isGooglePlayServicesAvailable(Unknown Source:3)
E/MethodChannel#flutter.baseflow.com/google_api_availability/methods( 5234):    at com.google.android.gms.common.GoogleApiAvailability.isGooglePlayServicesAvailable(Unknown Source:93)
E/MethodChannel#flutter.baseflow.com/google_api_availability/methods( 5234):    at com.baseflow.googleapiavailability.GoogleApiAvailabilityPlugin.onMethodCall(GoogleApiAvailabilityPlugin.java:105)
E/MethodChannel#flutter.baseflow.com/google_api_availability/methods( 5234):    at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:231)
E/MethodChannel#flutter.baseflow.com/google_api_availability/methods( 5234):    at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:93)
E/MethodChannel#flutter.baseflow.com/google_api_availability/methods( 5234):    at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:642)
E/MethodChannel#flutter.baseflow.com/google_api_availability/methods( 5234):    at android.os.MessageQueue.nativePollOnce(Native Method)
E/MethodChannel#flutter.baseflow.com/google_api_availability/methods( 5234):    at android.os.MessageQueue.next(MessageQueue.java:336)
E/MethodChannel#flutter.baseflow.com/google_api_availability/methods( 5234):    at android.os.Looper.loop(Looper.java:174)
E/MethodChannel#flutter.baseflow.com/google_api_availability/methods( 5234):    at android.app.ActivityThread.main(ActivityThread.java:7356)
E/MethodChannel#flutter.baseflow.com/google_api_availability/methods( 5234):    at java.lang.reflect.Method.invoke(Native Method)
E/MethodChannel#flutter.baseflow.com/google_api_availability/methods( 5234):    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
E/MethodChannel#flutter.baseflow.com/google_api_availability/methods( 5234):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

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

لقد قمتُ بإنشاء نموذج تطبيق لإعادة إظهار المشكلة: https://github.com/estevez-dev/sample_flutter_app
تم تكوينه مسبقًا للتشغيل في Gitpod. فقط اضغط على الزر العائم لبدء مهمة الخلفية وستحصل على استثناء على getCurrentPosition .
يرجى ملاحظة أن التطبيق لن يطلب إذن الموقع ، فأنت بحاجة إلى السماح به يدويًا من إعدادات Android.

إعدادات

إصدار البرنامج المساعد: 5.3.0

برنامج:

  • []: iphone: iOS
  • [x]: الروبوت: Android
android in progress bug

ال 6 كومينتر

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

لدي نفس المشكلة هل تجد أي حلول من فضلك

@ walide67 ، لا حل حتى الآن.

@ walide67 ، لا حل حتى الآن.

هل لديك أي حل لتتبع الموقع في backgrounf أو في المقدمة مع الرفرفة
الرجاء أي مساعدة لأن عملي توقف

يجب حل هذه المشكلة الآن ، لقد قمنا بإصدار إصلاح عاجل للمكوِّن الإضافي google_api_availability (الذي يعتمد عليه geolocator ) لحل استثناء المؤشر الفارغ.

نظرًا لأنه تم إصدار google_api_availability كإصلاح عاجل ، يجب أن يتم انتقاؤه تلقائيًا ، ولكن إذا كنت تريد التأكد ، فيرجى التحديث إلى الإصدار 5.3.1 من geolocator .

يمكن أن تؤكد أنها تعمل! شكرا جزيلا!

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