2011-03-26 98 views
1

一直在尋找用戶位置並將其顯示在屏幕上的應用程序遇到問題。在調試時,應用程序僅在模擬器和手機上崩潰。谷歌地圖上的Android GPS獲取/顯示位置

logcat的給了我這樣的:

03-26 15:41:37.958: ERROR/AndroidRuntime(871): Uncaught handler: thread main exiting due to uncaught exception 
03-26 15:41:37.988: ERROR/AndroidRuntime(871): java.lang.NullPointerException 
03-26 15:41:37.988: ERROR/AndroidRuntime(871):  at com.finalyear.fitnessapp.fitnessMapActivity$GeoUpdateHandler.onLocationChanged(fitnessMapActivity.java:62) 
03-26 15:41:37.988: ERROR/AndroidRuntime(871):  at android.location.LocationManager$ListenerTransport._handleMessage(LocationManager.java:179) 
03-26 15:41:37.988: ERROR/AndroidRuntime(871):  at android.location.LocationManager$ListenerTransport.access$000(LocationManager.java:112) 
03-26 15:41:37.988: ERROR/AndroidRuntime(871):  at android.location.LocationManager$ListenerTransport$1.handleMessage(LocationManager.java:128) 
03-26 15:41:37.988: ERROR/AndroidRuntime(871):  at android.os.Handler.dispatchMessage(Handler.java:99) 
03-26 15:41:37.988: ERROR/AndroidRuntime(871):  at android.os.Looper.loop(Looper.java:123) 
03-26 15:41:37.988: ERROR/AndroidRuntime(871):  at android.app.ActivityThread.main(ActivityThread.java:4603) 
03-26 15:41:37.988: ERROR/AndroidRuntime(871):  at java.lang.reflect.Method.invokeNative(Native Method) 
03-26 15:41:37.988: ERROR/AndroidRuntime(871):  at java.lang.reflect.Method.invoke(Method.java:521) 
03-26 15:41:37.988: ERROR/AndroidRuntime(871):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
03-26 15:41:37.988: ERROR/AndroidRuntime(871):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
03-26 15:41:37.988: ERROR/AndroidRuntime(871):  at dalvik.system.NativeStart.main(Native Method) 
03-26 15:41:40.018: ERROR/ActivityManager(87): fail to set top app changed! 
03-26 15:41:51.238: ERROR/MapActivity(933): Couldn't get connection factory client 

我的代碼是:

public class GeoUpdateHandler implements LocationListener { 

    @Override 
    public void onLocationChanged(Location location) { 
     int lat = (int) (location.getLatitude() * 1E6); 
     int lng = (int) (location.getLongitude() * 1E6); 
     GeoPoint point = new GeoPoint(lat, lng); 
     mapController.animateTo(point); 
     mapController.setCenter(point); 

    } 

任何幫助將是巨大的一直停留在這幾個星期了。

回答

3

我的第一個想法是,你的位置被傳遞爲空,你可以檢查。

爲什麼會這樣呢?您是否在清單中設置了位置請求?

檢查這個線程: Location Null Pointer

1

您將需要設置爲使用GPS位置的權限在你這樣的清單文件,如果你不已經有一個組。

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

此外,如果您有任何可能發生上述NullPointerException異常,您應該始終檢查您傳遞的是否爲null。在這種情況下,您應該檢查位置,因爲如果您嘗試檢索GPS座標並且沒有權限,則位置可以爲null

相關問題