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)
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.
Versión del complemento: 5.3.0
Plataforma:
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!