2011-03-26 101 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

相关问题