Flutter-geolocator: java.lang.NullPointerException al obtener la ubicación en un aislamiento separado

Creado en 18 mar. 2020  ·  6Comentarios  ·  Fuente: Baseflow/flutter-geolocator

🐛 Informe de error

Recibo el error al intentar obtener la ubicación en el proceso en segundo plano, por lo que el complemento se ejecuta en un aislamiento separado usando 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

Aquí hay un rastro de la pila:

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)

Pasos de reproducción

Creé una aplicación de muestra para reproducir el problema: https://github.com/estevez-dev/sample_flutter_app
Está preconfigurado para ejecutarse en Gitpod. Simplemente toque el botón flotante para iniciar la tarea en segundo plano y obtendrá una excepción en getCurrentPosition .
Tenga en cuenta que la aplicación no solicitará permiso de ubicación, debe permitirlo manualmente desde la configuración de Android.

Configuración

Versión del complemento: 5.3.0

Plataforma:

  • []: iphone: iOS
  • [x]: robot: Android
android in progress bug

Todos 6 comentarios

Muchas gracias por enviar este problema y la extensa descripción del error y la muestra de código. Analizaré esto e intentaré solucionarlo pronto.

Tengo el mismo problema, ¿encuentra alguna solución?

@ walide67 , todavía no hay solución.

@ walide67 , todavía no hay solución.

¿Tiene alguna solución para rastrear la ubicación en segundo plano o en primer plano con aleteo?
Por favor cualquier ayuda porque mi trabajo se detuvo

Este problema ahora debería resolverse, hemos lanzado una revisión para el complemento google_api_availability (del que depende geolocator ) resolviendo la excepción del puntero nulo.

Dado que google_api_availability se lanzó como una revisión, debería ser recogido automáticamente, pero si quiere estar seguro, actualice a geolocator versión 5.3.1.

¡Puedo confirmar que funciona! ¡Muchas gracias!

¿Fue útil esta página
0 / 5 - 0 calificaciones