Flutter-geolocator: java.lang.NullPointerException ao obter a localização em um isolamento separado

Criado em 18 mar. 2020  ·  6Comentários  ·  Fonte: Baseflow/flutter-geolocator

🐛 Relatório de Bug

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)

Etapas de reprodução

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.

Configuração

Versão do plugin: 5.3.0

Plataforma:

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

Todos 6 comentários

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!

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

DineshKachhot picture DineshKachhot  ·  7Comentários

devalp-pro picture devalp-pro  ·  3Comentários

hectorAguero picture hectorAguero  ·  5Comentários

long1eu picture long1eu  ·  4Comentários

prasant10050 picture prasant10050  ·  6Comentários