MyLocationOverlay 사용시 갤럭시A에서 죽는 현상
Posted 2010/12/17 14:06, Filed under: 나의 길/Android언제나 갤럭시 시리즈는 맘에 안든다.
MapView에 자기 위치를 표시하기 위해서는 가장 간단히는 MyLocationOverlay 를 사용한다.
센서 설정해줄 필요도 없이 알아서 표시하고 위치 따라다니고 편하거든.
오늘 테스트를 하는데 다른것들은 괜찮은데 갤럭시A에서 그냥 MapView 페이지만 들어가면 죽는것이다.
리소스를 많이 먹나 했는데 그런쪽은 아닌거다.
구글에게 물어봤다.
http://community.developer.motorola.com/t5/Android-App-Development-for/Google-Maps/m-p/3421/highlight/true#M396
갤럭시에서 아마도 현재 위치를 표시하는 리소스를 빼먹은거 같다.
그래서 오류가 있을 경우 직접 현재 위치를 고쳐주게 한다는 의미이다.
자세한것은 위를 참조
MyLocationOverlay 를 위의것으로 대체.
현재 위치 표시하는 이미지는 직접 만들어서 지정하면 된다.
없으면 저 위의 링크에 기본 이미지가 있으니 참고한다.
MapView에 자기 위치를 표시하기 위해서는 가장 간단히는 MyLocationOverlay 를 사용한다.
센서 설정해줄 필요도 없이 알아서 표시하고 위치 따라다니고 편하거든.
오늘 테스트를 하는데 다른것들은 괜찮은데 갤럭시A에서 그냥 MapView 페이지만 들어가면 죽는것이다.
리소스를 많이 먹나 했는데 그런쪽은 아닌거다.
E/AndroidRuntime( 1662): Uncaught handler: thread main exiting due to uncaught exception
E/AndroidRuntime( 1662): java.lang.ClassCastException: android.graphics.drawable.BitmapDrawable
E/AndroidRuntime( 1662): at com.google.android.maps.MyLocationOverlay.getLocationDot(MyLocationOverlay.java:180)
E/AndroidRuntime( 1662): at com.google.android.maps.MyLocationOverlay.drawMyLocation(MyLocationOverlay.java:561)
E/AndroidRuntime( 1662): at com.google.android.maps.MyLocationOverlay.draw(MyLocationOverlay.java:511)
E/AndroidRuntime( 1662): at com.google.android.maps.OverlayBundle.draw(OverlayBundle.java:45)
E/AndroidRuntime( 1662): at com.google.android.maps.MapView.onDraw(MapView.java:494)
E/AndroidRuntime( 1662): at android.view.View.draw(View.java:6535)
E/AndroidRuntime( 1662): at android.view.ViewGroup.drawChild(ViewGroup.java:1531)
E/AndroidRuntime( 1662): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
E/AndroidRuntime( 1662): at android.view.ViewGroup.drawChild(ViewGroup.java:1529)
E/AndroidRuntime( 1662): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
E/AndroidRuntime( 1662): java.lang.ClassCastException: android.graphics.drawable.BitmapDrawable
E/AndroidRuntime( 1662): at com.google.android.maps.MyLocationOverlay.getLocationDot(MyLocationOverlay.java:180)
E/AndroidRuntime( 1662): at com.google.android.maps.MyLocationOverlay.drawMyLocation(MyLocationOverlay.java:561)
E/AndroidRuntime( 1662): at com.google.android.maps.MyLocationOverlay.draw(MyLocationOverlay.java:511)
E/AndroidRuntime( 1662): at com.google.android.maps.OverlayBundle.draw(OverlayBundle.java:45)
E/AndroidRuntime( 1662): at com.google.android.maps.MapView.onDraw(MapView.java:494)
E/AndroidRuntime( 1662): at android.view.View.draw(View.java:6535)
E/AndroidRuntime( 1662): at android.view.ViewGroup.drawChild(ViewGroup.java:1531)
E/AndroidRuntime( 1662): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
E/AndroidRuntime( 1662): at android.view.ViewGroup.drawChild(ViewGroup.java:1529)
E/AndroidRuntime( 1662): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
구글에게 물어봤다.
http://community.developer.motorola.com/t5/Android-App-Development-for/Google-Maps/m-p/3421/highlight/true#M396
갤럭시에서 아마도 현재 위치를 표시하는 리소스를 빼먹은거 같다.
그래서 오류가 있을 경우 직접 현재 위치를 고쳐주게 한다는 의미이다.
자세한것은 위를 참조
MyLocationOverlay 를 위의것으로 대체.
현재 위치 표시하는 이미지는 직접 만들어서 지정하면 된다.
없으면 저 위의 링크에 기본 이미지가 있으니 참고한다.
Response :
0 Trackback
,
2 Comments
Trackback URL : http://simplelife.pe.kr/tc/trackback/690
-
뭔 소리야 이게.
A급 은하계는 몰겠고 S급 은하계는 참 좋긴 하다 : )
SKT가 위에 씌워놓은 것들 제거하고 커스터마이징 하니 마음에 든다 ㅎ-
갤럭시는 역시 갤럭시도 보내야 함... ㅡ,.ㅡ
-
FixedMyLocationOverlay.java


