[android] dex를 실행할 수 없습니다 : 여러 dex 파일이 Lcom / myapp / R $ array를 정의합니다.

ADT14로 업데이트 한 이후 더 이상 프로젝트를 빌드 할 수 없습니다. 업데이트하기 전에 제대로 작성되었습니다.

오류:

[2011-10-23 16:23:29 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/myapp/R$array;
[2011-10-23 16:23:29 - myProj] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/myapp/R$array;

비슷한 문제 가보고되었으며 여기에 제안을 시도했습니다.

  • 다시 시작 Eclipse.
  • 프로젝트 정리 및 재 구축- “프로젝트-> 자동 빌드”옵션을 비활성화 한 다음 “청소”및 “빌드”프로젝트를 비활성화 한 다음 실행 해보십시오. “자동 빌드”옵션을 켜기로 재설정
  • Android개발자 도구 재설치
  • Eclipse 재설치 (최신 버전 3.7.1로 업데이트)
  • 파일 시스템에서 가져 오는 새 프로젝트를 만들었습니다.
  • Subversion에서 새 프로젝트를 만들었습니다.


답변

Eclipse를 사용할 때만 발생했기 때문에 동일한 문제가 있었지만 꽤 이상했습니다 (그러나 Ant에서는 괜찮 았습니다). 이것이 내가 고친 방법입니다.

  • 오른쪽 클릭 Project Name
  • 선택 Build Path->Configure Build Path
  • 에서 Java Build Path, 탭으로 이동Order and Export

  • .jar라이브러리를 체크 해제하십시오

때때로 :
주문 및 내보내기 탭에 jar 라이브러리가 없으므로 Android Private Libraries 항목을 선택 해제했습니다. 이제 내 프로젝트가 실행 중입니다.


답변

이전 버전의 도구에서 남은 일부 디렉토리와 파일을 정리 한 후에 문제가 해결되었습니다. ADT Rev 14는 바이너리가 저장되는 위치를 변경 합니다. 전체 bin 디렉토리를 삭제하고 Eclipse를 다시 시작한 후 빌드를 정리하고 강제로 다시 빌드했습니다. 처음에는 트릭을 수행하는 것처럼 보였지만 다음 실행 후 문제가 다시 발생했습니다.

마침내 bin 디렉토리가 프로젝트 빌드 경로에 포함되어 있음을 발견했습니다. 빌드 경로에서 bin을 제외하고 위의 단계를 반복했습니다. 이것은 내 문제를 해결했습니다.


답변

[나를 위해 해결]

Eclipse 프로젝트 특성-> Java 빌드 경로-> 주문 및 내보내기

Android 개인 라이브러리를 선택 취소하십시오.


답변

위의 어느 것도 도움이되지 않았습니다. 결국 간단한 문제였습니다.

FacebookSDK와 ViewPagerIndicator를 라이브러리 프로젝트로 사용하는 프로젝트가 있습니다. 모두 Android API 16을 기반으로 구축되었으며이 두 프로젝트는 Android 지원 라이브러리 vX (X는 16이 아님)를 사용했습니다.

두 프로젝트 모두에 외부 JAR을 추가하고 \ extras \ android \ v4를 가리 켰습니다. 또한 libs 폴더에있는 v4 jar도 제거했습니다.

모든 프로젝트를 정리하고 다시 빌드하십시오.

짜잔!

내가받은 정확한 오류 : dex를 실행할 수 없음 : 여러 dex 파일이 Landroid / support / v4 / view / PagerAdapter를 정의합니다. Dalvik 형식으로 변환하지 못했습니다 : dex를 실행할 수 없습니다 : 여러 dex 파일이 Landroid / support / v4 / view / PagerAdapter를 정의합니다.


답변

이 문제는 저에게 발생했습니다 .gson-2.2.2.jar라는 libs 폴더에 외부 .jar이 있지만 어떤 이유로 gson-2.2.2.jar와 gson-2.2.2.jar (두 가지)이있었습니다. 1), 나는 단순히 후자를 삭제하고 내 프로젝트는 다시 잘 구축되었습니다.


답변

  1. 일식을 닫습니다.
  2. 프로젝트 폴더 안의 bin 폴더를 삭제하십시오.
  3. 일식을 시작하고 프로젝트를 청소하십시오.
  4. 이제 실행하면 문제가 사라져야합니다

답변

다른 사람들이 언급했듯이, 이것은 빌드 경로에 동일한 클래스의 여러 사본이있을 때 발생합니다. 클래스 경로에 bin /을 포함하면이 문제를 보장 할 수 있습니다.

나를 위해, 이것은 내 libs / 폴더에 android-support-v4.jar을 추가했을 때 발생했으며 어떻게 든 일식은 bin / classes / android-support-v4.jar에 두 번째 사본을 추가했습니다.

bin / classes에서 여분의 사본을 삭제하면 문제점이 해결되었습니다. Eclipse가 왜 사본을 작성했는지 확실하지 않습니다.

당신은 이것을 테스트 할 수 있습니다

grep -r YourOffendingClassName YourApp | 병마개