2011-02-23 5 views
23

주제 제목이 "응용 프로그램이 예기치 않게 중단되었습니다"라는 다른 많은 질문과 달리 특정 문제를 해결할 것을 요구하지 않습니다.응용 프로그램이 예기치 않게 중지되었습니다. 디버그 방법?

대신 안드로이드/이클립스/자바 신인이 간단한 안드로이드 애플리케이션을 개발 (그리고 디버깅하기 위해) 엄청난 양의 정보를 소화한다는 엄청난 과제를 해결하기위한 최고의 전략에 대한 개요를 묻습니다.

필자는 SDK에서 샘플 스켈레톤 응용 프로그램을 가져 와서 을 약간 수정했는데으로 수정했는데 실행 해보는 순간 어떻게되었을까요?

응용 프로그램 (process.com.example.android.skeletonapp) 예기치 않게 중지되었습니다. 다시 으로 시도해보십시오.

좋아요, 그래서 LogCat을 봐야한다는 것을 알고 있습니다. 날 지켜보고있는 타임 스탬프가 가득한 줄이야. 지금 어떻게해야하지? 무엇을 찾아야합니까?

프로그램을 단일 단계로 실행하는 방법이 있습니까? 앱 충돌을 유발하는 진술을 찾으십니까? (나는 자바 프로그램이 충돌하지 않는다고 생각했지만 분명히 오인되었다.)

어떻게 중단 점을 배치 할 수 있습니까?

이 아닌 Android 디버그 자습서을 온라인으로 다운로드 할 것을 권장 할 수 있습니까?

+1

사람들이 올바른 방향으로 당신을 도울 수 있도록 logcat 출력의 라인을 복사해서 붙여 넣기하십시오. 일반적으로 단어 'Exception'과 콜 스택 또는 응용 프로그램에 대한 참조를 찾으십시오. –

+0

@ typo.pl 고마워, 내가하고있는 것을 알 때 분명히 그렇게 할 것이다. 그러나이 시점에서 @HappyCodeMonkey와 @jqpubliq가 제안한 방법론에만 관심이 있습니다. –

+1

나는 "logcat output - 단어 'Exception'과 콜 스택 또는 응용 프로그램에 대한 참조를 찾습니다. 안드로이드가 앱에서 큰 문제가있는 곳을 이미 말했을 때 디버거에서 중단 점을 활성화/비활성화하는 데 시간을 낭비하지 마십시오. Exception과 callstack이 연기 총입니다. –

답변

16

당신은 이클립스에서 중단 점을 설정 ... 나뿐만 아니라 이클립스/안드로이드 초보자 해요,하지만 희망 내 간단한 디버깅 프로세스가 도움이 될 수 있습니다 중단하려는 선 옆을 마우스 오른쪽 버튼으로 클릭하고 "중단 점 토글"을 선택하십시오. 거기에서 "실행"대신 "디버그"를 선택하여 단계별로 수행 할 수 있습니다. LogCat에서 제공하는 필터 (자습서 참조)를 사용하면 모든 출력을 처리하는 대신 원하는 메시지를 대상으로 지정할 수 있습니다. 그것은 (잘하면) 오류의 의미를 이해하는데 도움이 될 것입니다.

다른 훌륭한 튜토리얼에 관해서는, 나는 약간 혼자서 검색하고 있었지만 아직 어떤 보석도 찾을 수 없었습니다.

+0

이것은 좋은 대답입니다. 내가 중단하고 "토글 중단 점"을 선택하려는 줄 옆에 마우스 오른쪽 버튼으로 클릭했지만 그와 같은 메뉴 항목을 찾을 수 없습니다. Visual Studio와 Eclipse를 혼동하지 않으시겠습니까? :) –

+1

방법 내부를 클릭하십시오. 왼쪽에는 해당 방법의 범위에 대한 파란색 강조 표시가 있어야합니다. 그것이 클릭하는 곳입니다. 더블 클릭은 동일합니다 – jqpubliq

+1

아니, 분명히 Eclipse ... 다시 한번 살펴보면 파일 편집기의 왼쪽에있는 베이지 색 영역보다는 파일 편집기 자체를 클릭 할 가능성이 있습니까? 예를 들어 패키지를 가져올 필요가 있음을 알려주는 작은 경고가 나타나는 영역입니다. 이것이 의미가 없으면 스크린 샷을 만들어 드리겠습니다. – HappyCodeMonkey

9

단지 오류 및 치명적인 예외를 찾기 위해 로그를 필터링

+0

이것은 좋은 팁입니다. 감사! (와 +1 : –

4

Eclipse에서 'debug'퍼스펙티브 안에서 Logcat 디스플레이를 사용하면 라인이 색상으로 구분됩니다. 앱이 일반적으로 빨간색이기 때문에 무엇이 충돌했는지 쉽게 알 수 있습니다.

Java (또는 Dalvik) 가상 컴퓨터는 절대로 충돌해서는 안되지만 프로그램이 예외를 throw하고 catch하지 않으면 VM이 프로그램을 종료합니다. 이는 사용자가보고있는 '충돌'입니다.

+0

+1. 모든 팁이 중요합니다. :) –

0

확인 여부를 앱이 필요한 permissions.I이 같은 오류가 발생되었고, 나는이 보여 로그 캣 디버그 로그 확인이 있습니다

04-15 13:38:25.387: E/AndroidRuntime(694): java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.CALL dat=tel:555-555-5555 cmp=com.android.phone/.OutgoingCallBroadcaster } from ProcessRecord{44068640 694:rahulserver.test/10055} (pid=694, uid=10055) requires android.permission.CALL_PHONE 

내가 다음 내 안드로이드 매니페스트에 필요한 권한을 준를하는 나를 위해 일했다.

-2
  1. 홈 화면에서 메뉴 키를 누릅니다.
  2. 목록 항목
  3. 설정을 터치합니다.
  4. 애플리케이션을 터치합니다.
  5. 애플리케이션 관리를 터치합니다.
  6. 모두 터치합니다.
  7. 문제가있는 응용 프로그램을 선택하십시오.
  8. 데이터 지우기 및 사용 가능한 경우 캐시 지우기를 터치합니다. 이렇게하면 앱이 새로운 것으로 재설정되고 앱에 저장된 개인 데이터가 삭제 될 수 있습니다.
+0

이것은 앱 문제를 디버깅하는 데 도움이되지 않습니다. 문제를 해결하기위한 방법 일 수도 있지만 문제가 무엇인지 파악하는 데는 도움이되지 않습니다. – qqx

+0

질문은 디버깅을위한 전략을 묻습니다. 반드시 오류를 제거하지 않아도됩니다. –

관련 문제