2011-03-26 11 views
1

사용자 위치를 찾고 화면에 표시하는 응용 프로그램에 문제가 있습니다. 디버깅하는 동안 응용 프로그램이 에뮬레이터와 휴대 전화에서 충돌합니다.Google지도의 Android GPS 위치 표시/표시

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

나의 첫 번째 생각은 귀하의 위치가 귀하가 확인할 수있는 널 (null)로 전달된다는 것입니다.

왜 그런가? 매니페스트에 위치 요청을 설정 했습니까?

확인이 스레드 : 당신은 당신이 이미 설정하지 않은 경우이 같은 매니페스트 파일에 GPS 위치에 대한 권한을 사용 설정해야합니다 Location Null Pointer

1

. 당신이 NullPointerException이 갖는 기회가 있다면

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

또한, 당신은 항상 널 위해 무엇을 당신의 통과를 확인해야합니다 이상으로. 이 경우 GPS 좌표를 가져오고 권한이없는 경우 위치가 null 일 수 있으므로 위치를 확인해야합니다.