2012-10-10 2 views
0

나는 SO를 검색하고 내가 만났던 모든 솔루션을 시도했지만 아무것도 작동하지 않는 것 같습니다. 내가 시도한 것은 here, here, here, herehere과 같은 솔루션이지만 아무것도 작동하지 않는 것 같습니다.App에서 참조하지 않은 Android 라이브러리 프로젝트에서 Jar를 참조했습니다. NoClassDefFoundError

이러한 질문 중 일부에 설명 된 것처럼 Android 라이브러리 (AL)에 포함 된 Java 라이브러리 (J)는 Android 앱 (AA)에 포함되어 있습니다. 나는 라이브러리를 lib의 두 라이브러리에 추가했다. (그냥 AA에 추가하고 AL에 포함 시키려고했는데, 그 반대도 마찬가지고 AL에서 안드로이드 의존성이 필요하다는 것을 예상 했음). 작업.

저는 최신 도구 (버전 20.0.3)를 사용하고 있습니다. 안드로이드 라이브러리 및 앱의 빌드 안드로이드 버전은 2.2이고 최소 SDK는 5입니다.

앱의 안드로이드 종속성에서 자바 라이브러리를 볼 수 있지만 NoClassDefFoundException 및 런타임이 표시됩니다.

어떻게 작동합니까?

안드로이드 라이브러리는 숨길 필요가있는 암호화 로직을 포함하고 있기 때문에 jar 파일을 참조해야합니다. 라이브러리가 배포 용으로 만들어지기 때문에이 응용 프로그램은 라이브러리를 테스트하는 데 아주 간단합니다.

+0

Android 앱 (AA)에 Android 라이브러리 (AL)를 넣으려고 어디 있습니까? 에서처럼 프로젝트의 파일 시스템이 어디에 위치합니까? – AWT

+0

또한 Java 라이브러리 J에 대해서만 NoClassDefFound 오류가 있습니까? J에 의존하지 않는 AL의 다른 기능을 사용할 수 있습니까? – AWT

+0

예. 자바 라이브러리 J의 함수/클래스에만 해당. 동일한 루트 디렉토리에있는 서로 다른 폴더입니다. 모두 동일한 작업 공간을 공유합니다. 시행 착오를 통해 해결책을 찾았습니다. 지금 일하고있어. – kapad

답변

0

이 문제의 원인은 두 가지이지만 관련 문제가 있습니다.

  1. Java 라이브러리 J는 호환 수준 1.7 (내 시스템에서는 기본값)으로 컴파일되었습니다. Android 1.5의 준수 수준 인 1.5입니다. (규정 준수 수준은 향후 변경 될 수 있음).
  2. J 라이브러리도 J2SE 라이브러리를 사용하여 컴파일하고있었습니다. 나는 그것을 내 앱과 같은 API 수준의 anroid.jar로 대체해야했다.

또한 프로젝트를 삭제하고 새 디렉토리에서 작업을 다시 시작한 후 몇 가지 이유로 작업이 시작되지 않았습니다. (IMP : 코드 백업을 먼저 수행하십시오.)

관련 문제