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

안드로이드 초보입니다 device에서는 돌아가는데 AVD에서는 안되는것에 대한 질문

0 추천

안녕하세요  지금껏 아이폰만 개발했고요 안드로이드는 처음입니다.

 

그래서 몇개 샘플프로그램을 보고 있는데요 

(코코스2dx 로 만든 간단한 게임)

 

디바이스 (구닥다리 갤탭 2.3.6 진저브레드)  에 직접 하니깐 프로그램이 돌아가는데요 

 

AVD (api 10~ 19 까지 다해봄) 에러가 뜨더라고요..

 

Sorry! The application XXXX (process com.xxx.xxx.xxx) has stopped unexpectedly. Please try again. Force close

이런식의 에러고요

로그캣에는  caused by 로 시작하는 메세지는 없고요..

07-26 09:14:54.905: W/dalvikvm(3931): threadid=9: thread exiting with uncaught exception (group=0x40015560)
07-26 09:14:54.955: E/AndroidRuntime(3931): FATAL EXCEPTION: GLThread 10
07-26 09:14:54.955: E/AndroidRuntime(3931): java.lang.IllegalArgumentException: No configs match configSpec
07-26 09:14:54.955: E/AndroidRuntime(3931): at android.opengl.GLSurfaceView$BaseConfigChooser.chooseConfig(GLSurfaceView.java:763)
07-26 09:14:54.955: E/AndroidRuntime(3931): at android.opengl.GLSurfaceView$EglHelper.start(GLSurfaceView.java:919)
07-26 09:14:54.955: E/AndroidRuntime(3931): at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1264)
07-26 09:14:54.955: E/AndroidRuntime(3931): at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1118)

 

이렇게만 되어있습니다.

 

1.

원래 안드로이드는 AVD에서 안되는 경우도 많은건지 궁금하네요....  (에러라면 장비에서도 안되야 되는건데 장비에서는 정상적으로 돌아가니 프로그램상 에러는 아닌것 같아서요..)

 

2.

그리고 일부러 일부 필요한 이미지를 삭제하면 디비아스에서는 assets에 어떤 이미지가 없다고 뜨고 이클립스에서는 아무곳에서도 그런 에러 메세지가 뜨지 않는데요.. 

에러일때 어느부분에서 에러인지 어떻게 알수 있는지 궁금하네요  (아이폰개발할때는  에러난 부분을 바로 알려주고 해서요..)

 

 

보가뚜 (120 포인트) 님이 2014년 7월 26일 질문

1개의 답변

0 추천
1. 잘은모르겠지만 보통 thread라고 나오는건 대부분 쓰레드에서 UI를 건드릴려고할때 발생하는 에러입니다.

혹은 네트워크작업을 UI 쓰레드에서 돌리면 3.0이하버전에서는 안뜨지만 이상에서는 뜨기도 하구요.

실제 기기와 에뮬레이터는 차이가 많이납니다.

카메라도 없고 자이로센서나 일부 기능이 없기때문에 모든상황에서 실제 기기와 똑같이 작동하리라는 보장은 없죠.

실제 기기에선 돌아가는데 에뮬레이터에서 안돌아가는경우도있나요?

-> 굉장히많습니다.

그러니까 에뮬레이터는 화면 배치용으로만쓰고 실제론 기기를가지고 테스트하셔야됩니다.

에러내용을 봐도 No Configs match ConfigSpecs 라고 하는거보면 하드웨어 기능이 없어서 발생하는거같기도하고.. 모르겠네요.

 

2. 필요한 이미지를 assets에 왜 넣는지 이해가 안가네요.

보통은 res 폴더에 넣구요, 일부 이미지가 없으면 애초에 이클립스에서 실행이 안됩니다.

소스파일 저장만해도 어느 폴더 어느파일에 에러가뜨는지 표시가 뜨구요. 쉽게 어느 이미지파일이 없는지 확인할수있습니다.

asset에 이미지를 넣는건 좋지않은 방법인거같구요.. asset은 보통 폰트나 기타 파일을 넣기 용도로 사용됩니다.
기초개발자 (24,060 포인트) 님이 2014년 7월 26일 답변
답변감사드립니다.
그리고 2번째 질문은   
에러가 디바이스에서는 팝업창으로 에러가 정상적으로 표시되고(일부러 에러를 발생시켰더니 말이죠)
컴퓨터와 장비를 연결시켜놓은 상태에서 이클립스(로그캣)등에서는 에러표시가 안되서요..

이미지있는 폴더는 그냥 예를 든거에요.. 이미지있어야될 폴더에서 이미지삭제시켰더니(일부러 에러발생시키기위해) 그 폴더가 어느폴더이며 이미지가 없다라는 표시가 디바이스에서만 출력되어서 궁금해서 질문드렸던겁니다.

안드로이드는 어떤순서로 어떻게 트러블 슈팅을 해야하는건지 모르겠더군요..

감사합니다.
정확히 어떤상황인지 이해가잘안되는데..
보통 xml을 통해서 화면을 만들고, 이미지를 박아놓으면,
drawable폴더에서 이미지를 삭제하면 xml에 오류가 발생하면서 실행자체가 안되는게 보통이에요.
폴더에 x표시떠서 어느폴더 어느파일 몇번째 무슨 이미지 불러오다가 실패했는지 빨간줄로 뜨구요..

근데 실행시켰더니 오류가 발생했다 라는말은 소스상에서 이미지를 불러왔다는말인거같은데, 보통 로그캣에 causedBy해서 line이 뜨지않나요?

전 오히려 아이폰 디버깅할때 힘들던데ㅋ
...