2013-03-26 5 views
0

비슷한 질문이 있다는 것을 알고 있지만 해결책이 없습니다. 내 프로젝트 그룹에서 자체 생성 된 .jar의 (기존) 클래스 에 액세스하려고하면 java.lang.NoClassDefFoundError가 표시됩니다.Android - NoClassDefFoundError가 변경된 후

이 .jar는 일반적인 javaProject에서 제대로 작동하지만 Android에서는 작동하지 않습니다. 하지만이 .jar의 이전 버전은 Android에서 잘 작동합니다.

Eclipse + Android 개발 도구 - 플러그인 (버전 21) 으로 Project_Home/libs 폴더에 .jar 파일을 넣었습니다. 컴파일 타임에 오류가 없습니다.

예외가 발생하기 전에 "dalvikvm - 클래스 ... 참조 할 수 없음 ..."오류가 발생했습니다.

우리 프로젝트 그룹이 최근에 Java 7을 사용하기 시작했기 때문에 Java 버전에 문제가있을 수 있다고 생각하지만 확신 할 수 없으며이를 수정하는 방법을 모릅니다.

도움을 주셔서 감사합니다.

+0

빌드를 업데이트 했습니까? 통로? – Cornholio

+1

기본적으로 Build Path 또는 Project-Properties-Android를 라이브러리로 추가해야하는 경우 확인해야합니다. – Roman

+0

@Cornholio : libs 폴더에 넣을 때 buildPath에 추가 할 필요가 없다고 생각합니다. 하지만 여러 번 시도했습니다 - 작동하지 않습니다 – user2212120

답변

0

보통 내 자신의 질문에 답하고 싶지 않지만 누군가가 도움이되기를 바랍니다.
나는 (이 콘솔에서이 아니었다 로그 캣에서)는 다른 경고 보지 못했다 :

"DX를 부정한 클래스 파일 마법 (cafebabe) 또는 버전 (0033.0000)"

을 나는이 경고를 발견했다 다른 Stackoverflow question. HypeEditor 으로 작동하지 않는 .jar에서 클래스 파일 중 하나를 열었고 Major-Version-Byte를 0x32로 변경했습니다. 클래스 7에서 Java 7의 기능이 있으므로 클래스 파일이 더 이상 작동하지 않지만 Java 버전에서 문제가 있음을 증명했습니다.

0

는 libs가에 lib 디렉토리의 이름을 변경하고 빌드 경로를 업데이트 한 다음 다시

+0

나는 이미 그것의 이름을 변경했다. (나의 질문 참조) – user2212120

0
  1. 시도 수업은 안드로이드 내에 이미 존재하는 것과 같은 이름이없는 것을 확인하십시오. 패키지를 빌드 할 때 이름이 같은 "최적화"클래스가 생략되므로 생략됩니다.

  2. Android 라이브러리는 대부분 1.5로 컴파일됩니다. 모든 라이브러리가 Android에 존재하는 것은 아닙니다. 패키지는 시스템에없는 다른 라이브러리에 따라 다를 수 있습니다.

+0

1 : 그것은 유일한 이름이다. 나는 그것을 듣고 싶지는 않지만 약 50 자 정도입니다. example.org와 같은 것이 없습니다. – user2212120

+0

2 :이 .jar의 이전 버전이 정상적으로 작동합니다. 큰 변화가 없었으며 이제는 .jar에 클래스가 없습니다. – user2212120

0

프로젝트가 잘 컴파일되고 있다면 우리는 복사 또는 java 빌드 경로의 오류를 배제 할 수 있다고 생각합니다. 내 오류가 코드에서 잘못되었을 때만이 오류가 발생합니다. 가져 오기를 다시 확인하고 R.java 파일을 다시 만들 것을 제안합니다.

+0

"가져 오기 다시 검사"(정확히 모든 가져 오기를 삭제하고 다시 가져 오기)와 정확히 무슨 뜻입니까? – user2212120

+0

삭제 R.java (및 다시 작성) 작동하지 않습니다. – user2212120

+0

예. 당신이하고있는 가져 오기가 당신이 가져 오기를 원하는 오른쪽 항아리인지 확인하십시오. 패키지 이름을 확인하십시오. 이전 항아리가 작동하여 이전 가져 오기를 참조 할 수 있다고 언급했습니다. –

관련 문제