2011-07-19 6 views
0

J'ai écrit le code ci-dessous pour obtenir des positions longues latexception Nullpointer avec manager emplacement

myLocationManager = (LocationManager)getSystemService  
    (Context.LOCATION_SERVICE); 
        myLocationListener = new MyLocationListener(); 

      myLocationManager.requestLocationUpdates 
    (LocationManager.GPS_PROVIDER, 1, 1, myLocationListener); 

    //HERE UNCOMMENT 
    latitude=myLocationManager.getLastKnownLocation 
    (LocationManager.GPS_PROVIDER).getLatitude(); 
    longitude=myLocationManager.getLastKnownLocation 
     (LocationManager.GPS_PROVIDER).getLongitude(); 

Je reçois exception Nullpointer à la ligne suivante
(LocationManager.GPS_PROVIDER) .getLatitude();

Je teste le code sur mon téléphone Android 2.1 avec GPS activé et j'ai donné les autorisations suivantes dans le fichier manifeste

android.permission.ACCESS_FINE_LOCATION 
android.permission.ACCESS_COARSE_LOCATION 
android.permission.INTERNET 
android.permission.ACCESS_WIFI_STATE 
android.permission.ACCESS_NETWORK_STATE 
android.permission.VIBRATE 

Répondre

0

Avez-vous envoyé des coordonnées depuis DDMS? Si non. Faites-le alors envoir la demande de mises à jour de localisation, je suis sûr que 99,9% vous ne recevrez pas NPE à nouveau pour cela.

+0

Comment puis-je envoyer des coordonnées à partir de DDMS et est-ce nécessaire pour le faire si je cours sur un appareil mobile? –

+0

http://i53.tinypic.com/5noqac.jpg Voici comment vous pouvez envoyer. Si vous ne trouvez pas la perspective DDMS, allez dans Fenêtre -> Ouvrir la perspective -> si vous ne voyez pas DDMS, allez dans Autre. Tada! :) –

+0

Hey je l'exécute sur un appareil mobile .. pas sur l'émulateur .. Je pense que nous pouvons fournir ces coordonnées si nous travaillons sur l'émulateur –

0

Il n'y a aucune garantie que vous avez un dernier emplacement connu. Par conséquent, il peut revenir comme nul.

+0

J'ai couru l'application de cartes qui a montré ma position sur la carte. donc je pense que certains endroits devraient avoir été mis en cache? –

0

Si vous travaillez avec l'émulateur puis sans fixer les coordonnées, vous obtiendrez pointeur NULL exception.To fixer dans l'émulateur

commande goto invite:

Type

: telnet localhost 5554 puis appuyez sur Entrée puis tapez

geo fix lat lon entrez le code ici enter et maintenant vous obtiendrez lat LON

ici 5554 est votre émulateur numéro de série

+0

Je l'exécute sur un appareil mobile .. –

+0

Ensuite, vous devriez l'obtenir dans la plupart des cas. – Rasel