أتلقى الخطأ عند محاولة الحصول على الموقع في عملية الخلفية بحيث يتم تشغيل المكون الإضافي بشكل منفصل باستخدام 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
برنامج:
شكرًا جزيلاً على إرسال هذه المشكلة ونموذج الشفرة الشامل ووصف الخطأ. سأبحث في هذا وسأحاول تقديم إصلاح قريبًا.
لدي نفس المشكلة هل تجد أي حلول من فضلك
@ walide67 ، لا حل حتى الآن.
@ walide67 ، لا حل حتى الآن.
هل لديك أي حل لتتبع الموقع في backgrounf أو في المقدمة مع الرفرفة
الرجاء أي مساعدة لأن عملي توقف
يجب حل هذه المشكلة الآن ، لقد قمنا بإصدار إصلاح عاجل للمكوِّن الإضافي google_api_availability
(الذي يعتمد عليه geolocator
) لحل استثناء المؤشر الفارغ.
نظرًا لأنه تم إصدار google_api_availability
كإصلاح عاجل ، يجب أن يتم انتقاؤه تلقائيًا ، ولكن إذا كنت تريد التأكد ، فيرجى التحديث إلى الإصدار 5.3.1 من geolocator
.
يمكن أن تؤكد أنها تعمل! شكرا جزيلا!