0

J'essaie d'obtenir LastKnowLocation en utilisant LocationManager, voici mon code:GPS Android obtenir l'emplacement null retour dans l'émulateur x86, mais le retour du vrai dans l'émulateur de bras

LocationManager mLocManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
if (mLocManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) { 
     Location mLocation = mLocManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
    } 

-je ajouter déjà permission AndroidManifest.xml:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 

Puis-je utiliser DDMS envoyer la latitude et la longitude de l'émulateur, mais quand je l'utilise émulateur CPU x86 J'obtiens l'erreur comme

Attempt to invoke virtual method 'double android.location.Location.getLatitude()' on a null object reference 

Quand j'utilise l'émulateur de bras CPU, j'obtiens la bonne latitude et la bonne longitude. N'importe qui peut dire pourquoi je ne peux pas obtenir le bon emplacement dans l'émulateur x86, et comment puis-je faire avec lui.Merci.

+0

voir avant d'essayer d'extraire la latitude et la longitude .. être sûr emplacement est non nul et aussi lors de l'utilisation double et l'analyse syntaxique long lat; assurez-vous que l'emplacement n'est pas nul et n'utilisez pas le fournisseur GPS; la plupart du temps, l'emplacement sera nul ... alors utilisez plutôt NETWORK_PROVIDER ... mais assurez-vous que le GPS est allumé, mais en incluant une vérification sur le GPS. – DJphy

Répondre

0

Résolu! la méthode getLastKnownLocation() ne demande pas de nouvel emplacement, elle peut juste vérifier s'il y avait un dernier emplacement connu de la demande d'emplacement d'une autre application. Lorsque j'utilisais l'émulateur d'armement, j'utilisais une autre application pour obtenir l'emplacement. obtenir l'emplacement.

Donc, si votre erreur de retour app aime

invoke virtual method 'double android.location.Location.getLatitude()' on a null object reference

il peut être dû à la méthode getLastKnownLocation(), essayez d'utiliser requestLocationUpdates() pour obtenir l'emplacement.

Regardez ceci: [Error invoke virtual method 'double android.location.Location.getLatitude()' on a null object reference