마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Android GoogleMap API v2 에 쓰레드 를 추가하는데 addPolygon이 안되요 ㅠㅠ

0 추천
기존의 프로그램은 파일 로드(메뉴에서 선택)-> 분석(kmltest메쏘드) -> 화면에 포인트, 라인, 폴리곤 뿌려주는 방식(init(() -> addMarker()등등)으로 그려졌습니다.

여기서 지금은 3단계가 메인 쓰레드 하나로 돌아가서

파일 로드 시부터 다 뿌릴때까지 그대로 멈추거든요...

그래서 파일을 선택할 때(메뉴에서 선택시에), 메인쓰레드에서는 프로그레스바를 돌리고

추가 쓰레드를 하나 만들어서 거기서 분석하는 메쏘드(kmltest)를 호출하고,

분석하는 메쏘드안에서 point, line, polygon 을 뽑아서 init() -> addMarker(), addPolyLine(), addPolygon() -> 핸들러에서 뿌려주는 작업

이렇게 진행됩니다.

kmltest 메쏘드 마지막에 프로그레스바를 닫아 주구요.

이렇게 변환을 했는데..

문제는 핸들러에서 addPolygon 으로 뿌려주면 에러가 납니다..(아직 addMarker 나 addPolyLine은 하지 않았음. 주석으로 막아놓음)

addPolygon 부분만 주석처리 하면 처리가 잘 되구요. 프로그레스 바도 잘 돕니다.

핸들러로 값이 잘 들어오는지 찍어 봐도 잘 들어옵니다.

뿌려주는 부분은 원래 잘 되던 소스를 그대로 가져와서 변수이름만 조금 수정했구요.

뭐가 문제인지 모르겠네요 에구구.. 아침부터 계속 수정수정 하다가 기존 소스도 날릴뻔했네요 ㅠㅠ

03-11 15:26:50.348: W/dalvikvm(23773): threadid=22: thread exiting with uncaught exception (group=0x40d5b1f8)
03-11 15:26:50.348: E/AndroidRuntime(23773): FATAL EXCEPTION: Thread-1927
03-11 15:26:50.348: E/AndroidRuntime(23773): java.lang.IllegalStateException: Not on the main thread
03-11 15:26:50.348: E/AndroidRuntime(23773): at maps.ap.q.b(Unknown Source)
03-11 15:26:50.348: E/AndroidRuntime(23773): at maps.au.e.b(Unknown Source)
03-11 15:26:50.348: E/AndroidRuntime(23773): at maps.z.ag.addPolygon(Unknown Source)
03-11 15:26:50.348: E/AndroidRuntime(23773): at com.google.android.gms.maps.internal.IGoogleMapDelegate$Stub.onTransact(IGoogleMapDelegate.java:152)
03-11 15:26:50.348: E/AndroidRuntime(23773): at android.os.Binder.transact(Binder.java:297)
03-11 15:26:50.348: E/AndroidRuntime(23773): at com.google.android.gms.maps.internal.IGoogleMapDelegate$a$a.addPolygon(Unknown Source)
03-11 15:26:50.348: E/AndroidRuntime(23773): at com.google.android.gms.maps.GoogleMap.addPolygon(Unknown Source)
03-11 15:26:50.348: E/AndroidRuntime(23773): at com.exam.v2test.MainActivity$1.handleMessage(MainActivity.java:566)
03-11 15:26:50.348: E/AndroidRuntime(23773): at com.exam.v2test.MainActivity.addPolygon(MainActivity.java:232)
03-11 15:26:50.348: E/AndroidRuntime(23773): at com.exam.v2test.MainActivity.init(MainActivity.java:131)
03-11 15:26:50.348: E/AndroidRuntime(23773): at com.exam.v2test.MainActivity.separate_list(MainActivity.java:475)
03-11 15:26:50.348: E/AndroidRuntime(23773): at com.exam.v2test.MainActivity.kmltest(MainActivity.java:444)
03-11 15:26:50.348: E/AndroidRuntime(23773): at com.exam.v2test.MainActivity$myThread.run(MainActivity.java:496)

이게 에러 메시지인데.. 왜 addPolygon 이 핸들러에서 호출이 안되는지 모르겠어요 ㅠㅠ
시험모드 (970 포인트) 님이 2013년 3월 11일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...