Estou recebendo o erro ao tentar obter a localização no processo de segundo plano, de modo que o plug-in é executado em um isolamento separado usando o gerenciador de trabalho :
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
Aqui estão alguns rastreamentos de pilha:
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)
Criei um aplicativo de amostra para reproduzir o problema: https://github.com/estevez-dev/sample_flutter_app
Ele é pré-configurado para ser executado no Gitpod. Basta tocar no botão flutuante para iniciar a tarefa em segundo plano e você obterá uma exceção em getCurrentPosition
.
Observe que o aplicativo não solicitará permissão de localização, você precisa permitir manualmente nas configurações do Android.
Versão do plugin: 5.3.0
Plataforma:
Muito obrigado por enviar este problema e o extenso exemplo de código e descrição do erro. Vou investigar isso e tentar corrigir o problema em breve.
Eu tenho o mesmo problema, você encontra alguma solução, por favor
@ walide67 , nenhuma solução ainda.
@ walide67 , nenhuma solução ainda.
Você tem alguma solução para rastrear a localização em background ou primeiro plano com vibração
Por favor, qualquer ajuda porque meu trabalho parou
Este problema deve ser resolvido agora, lançamos um hotfix para o plugin google_api_availability
(do qual o geolocator
depende) resolvendo a exceção de ponteiro nulo.
Uma vez que google_api_availability
foi lançado como um hotfix, ele deve ser retirado automaticamente, mas se você quiser ter certeza, atualize para geolocator
versão 5.3.1.
Pode confirmar se funciona! Muito obrigado!