2012-10-02 5 views
5

누군가이 오류의 의미와 피하는 방법을 설명해주십시오.NoClassDefFoundError - 이전에 실패한 클래스에서 재 초기화 거부

09-28 12:53:45.746 I/dalvikvm(29489): Rejecting re-init on previously-failed class Lcom/bartat/android/ui/task/AsyncTaskExt; v=0x0 
09-28 12:53:45.748 D/AndroidRuntime(29489): Shutting down VM 
09-28 12:53:45.755 I/am_crash(1146): [29489,com.bartat.android.secret,572996,java.lang.NoClassDefFoundError,com.bartat.android.ui.task.AsyncTaskExt,CommandsActivity.java,726] 
09-28 12:53:45.755 I/am_finish_activity(1146): [1079225264,123,com.bartat.android.secret/.CommandsActivity,crashed] 
09-28 12:53:45.750 W/dalvikvm(29489): threadid=1: thread exiting with uncaught exception (group=0x40015560) 
09-28 12:53:45.752 E/AndroidRuntime(29489): FATAL EXCEPTION: main 
09-28 12:53:45.752 E/AndroidRuntime(29489): java.lang.NoClassDefFoundError: com.bartat.android.ui.task.AsyncTaskExt 

이 문제는 응용 프로그램을 다시 설치하여 해결할 수없는하십시오 후

내 응용 프로그램 강제이 오류로 인해 닫 동안

.

예를 들어 AsyncTaskExt의 이름을 AsyncTaskExt2으로 변경하면 다시 작동합니다. 그러나 몇 주/몇 달 후에 다시이 오류가 발생하기 시작했습니다.

어떤 의미입니까? 클래스 이름을 바꾸지 않고 왜 그것을 피하는가?

제발 도와주세요, 타마스

답변

0

당신은 확인이 응용 프로그램을 실행 한 후지고 첫 번째 예외? 이전에 catch되지 않은 예외가있을 수 있습니다.

+0

이 오류의 원인을 모르겠다. 오류가 발생하기 전에 오류가 발생했다는 것을 의미합니다. 그러나이 예외가 발생하면 로그에 다른 오류가 없습니다. 시스템 (VM?)이이 클래스에 문제가 있다는 것을 어딘가에 저장했다고 생각합니다. 그러나 나는 아직 첫 번째 출현을 포착하지 않았다. – bartat

3

당신은 당신의 AndroidManifest.xml

9

클래스가 여러 가지 이유로로드 할 수없는 경우에 발생에 사용하는 라이브러리를 추가해야합니다. 아쉽게도 새로운 ART 런타임은이 문제의 원인에 대한 충분한 정보를 기록하지 않습니다. Dalvik으로 오래된 안드로이드 장치를 가지고 있다면 다른 로깅을 보게 될 것입니다. 보통보다 정밀한 공격을 보여줍니다.

마지막으로 라이브를 보았지만 실제로 의존성을 포함하거나 나열하지 않은 JAR 파일을 처리해야만했습니다. 그래야 종속 라이브러리를 추가하여 gradle 파일에 추가하여 해결했습니다. 가장 큰 문제는 누락 된 클래스를 파악하는 것입니다. dalvik 로그/디 컴파일/문서를 통해 알 수 있습니다.

Java 언어 전체에 클래스를로드 할 수없는 많은 다른 이유가 있으므로이 특정 원인이 보편적으로 적용되지 않을 수 있습니다.

+0

이것은 많은 도움이되었습니다. 의존성 JAR을 추가하면 문제가 해결됩니다. – Rediska

+0

누락 된 JAR 종속성을 추가하면이 문제도 해결됩니다. 감사! – pdsouza

2

새로운 유물 분석이 활성화 된 다른 프로젝트를 빌드 한 후에이 문제가 발생하기 시작했습니다. 그런 다음 Gradle 데몬이 New Relic 에이전트를 캐시했는데 다른 응용 프로그램을 시작할 수 없었습니다. 도움이 무엇

./gradlew --stop 
6

즉시 실행이 활성화 된 경우에만 나를 위해됩니까했다.

+0

시간을 절약 해 주셔서 감사합니다, 건배 :) –

+0

고맙습니다. 그것의 작동 insta 실행을 비활성화 할 때. 아직 insta 실행 문제가 있습니까? –

관련 문제