programing

덱스를 실행할 수 없음: 여러 개의 덱스 파일이 Lcom/myapp/R$ 어레이를 정의합니다.

instargram 2023. 5. 22. 20:18
반응형

덱스를 실행할 수 없음: 여러 개의 덱스 파일이 Lcom/myapp/R$ 어레이를 정의합니다.

로 :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.
  • 프로젝트 정리 및 재구성 - "Project->Build Automatic" 옵션을 비활성화한 다음 "Clean" 및 "Build" 프로젝트를 실행하려고 합니다. "Build Automatic" 옵션을 On으로 재설정합니다.
  • 을(를) 설치Android 도구
  • Eclipse 재설치(최신 버전 3.7.1로 업데이트)
  • 파일 시스템에서 가져오는 새 프로젝트를 만들었습니다.
  • 하위 버전에서 새 프로젝트를 만들었습니다.

저도 이클립스를 사용할 때만 발생했기 때문에 같은 문제가 있었는데, 꽤 이상했습니다(그러나 개미에게는 문제가 없었습니다).이렇게 고쳤습니다.

  • 마우스 오른쪽 버튼을 클릭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을 제외하고 위의 단계를 반복했습니다.이것으로 저의 문제가 해결되었습니다.

[나를 위해 해결됨]

이클립스 프로젝트 속성 ->자바 빌드 경로 ->주문 및 내보내기

Android 개인 라이브러리의 선택을 취소합니다.

위의 어떤 것도 도움이 되지 않았습니다.그것은 결국 단순한 문제였습니다.

나는 페이스북을 사용하는 프로젝트가 있었습니다.SDK 및 ViewPager라이브러리 프로젝트로 표시됩니다.모두 Android API 16을 기반으로 구축되었으며 두 프로젝트는 Android 지원 라이브러리 vX를 사용했습니다(X는 16이 아님!).

두 프로젝트 모두에 외부 JAR를 추가하고 \extra\android\v4...를 가리켰습니다.그리고 그들의 libs 폴더에 있던 v4 jar도 제거했습니다.

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

Voilla!

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

이 문제는 저에게 발생했습니다. 저는 libs 폴더에 gson-2.2.2.jar라는 외부 .jar가 있었지만 어떤 이유로 gson-2.2.2.jar와 gson-2.2.2.jar(1)라는 두 개가 있었습니다. 저는 후자를 삭제하고 프로젝트를 정상적으로 다시 빌드했습니다.

  1. 일식이 다가옵니다.
  2. 프로젝트 폴더 내의 bin 폴더를 삭제합니다.
  3. 이클립스를 시작하고 프로젝트를 정리합니다.
  4. 이제 실행하면 문제가 사라집니다.

다른 사람들이 언급했듯이 빌드 경로에 동일한 클래스의 복사본이 여러 개 있을 때 발생합니다. 클래스 경로에 bin/을 포함하는 것이 이 문제를 보장하는 한 가지 방법입니다.

저는 libs/폴더에 rodid-support-v4.jar를 추가했을 때 이런 일이 발생했고, eclipse는 bin/classes/android-support-v4.jar에 두 번째 복사본을 추가했습니다.

빈/클래스에서 추가 복사본을 삭제하면 문제가 해결되었습니다. 이클립스가 복사본을 만든 이유를 알 수 없습니다.

테스트할 수 있습니다.

grep -r 당신의 위반 클래스 이름 당신의 앱 | grep jar

저는 프로젝트 -> 빌드 경로 -> 빌드 경로 구성 -> 라이브러리 -> 종속성 제거를 마우스 오른쪽 버튼으로 클릭합니다.

작동한 후에

이 오류는 같은 클래스 이름을 포함하는 두 개의 병이 있는 경우 발생할 수 있습니다.저는 클래스 javax.ws.rs 을 포함하는 jsr311-api-1.1.1.jar와 jersey-core-1.17.1.jar라는 두 개의 라이브러리를 가지고 있었습니다.응용 프로그램 경로.jsr311-api-1.1.1.jar를 제거했고 잘 작동했습니다.

이미 안드로이드-support-v4.jar에 종속된 프로젝트에 facebooksdk.jar를 추가한 후 이 오류가 발생했습니다.facebooksdk.jar에는 이미 자체 Android-support-v4.jar가 포함되어 있기 때문에 충돌이 있었습니다.프로젝트에서 이전 rodroid-support-v4.jar를 제거한 후 Properties / Java Build Path / Libraries에서 이 문제를 해결했습니다.

Project/Properties(프로젝트/속성) 및 Java Build Path(Java 빌드 경로)로 이동하고 Android Private Libraries(안드로이드 개인 라이브러리)를 선택 취소합니다.

이것은 또한 이런 종류의 오류에 대한 또 다른 경우입니다.

다 했어요.

빌드 경로에서 안드로이드 종속성을 제거했고 작동했습니다.

편집: 무시합니다.저는 메이븐 의존성과 립스 폴더에 같은 병을 가지고 있었습니다.lib 폴더에 있는 것을 제거했습니다.

당신은 아마도 r14를 설치했을 것입니다. 이 오류는 플랫폼 도구 업데이트로 인해 발생했을 수 있습니다. sdk를 다시 설치해야 합니다.

저에게 이 문제는 제 프로젝트에 안드로이드 라이브러리 프로젝트가 포함되어 있는 한 존재합니다.그래서 제가 모든 라이브러리를 제거하고 당신이 말한 대로 하면 앱을 다시 실행할 수 있습니다.관련된 라이브러리가 있다면 빈 제거 트릭 트릭도 효과가 없을 것입니다.

제가 ADT 14를 며칠째 사용하고 있는데 왜 이 버그가 오늘 처음 나타났는지 모르겠습니다.하지만 저를 행복하게 해주는 다른 벌레들도 있었습니다.

bin 폴더를 삭제하는 것만으로는 부족했고, gen 폴더도 삭제했습니다.그런 다음 두 번 다시 빌드한 후 덱스 오류 메시지가 사라졌습니다.

Project Explorer에서 프로젝트를 선택하고 마우스 오른쪽 단추를 클릭한 후 속성 -> Java 빌드 경로 -> 소스 -> 소스 -> 소스 폴더에 출력 폴더 허용 확인란을 선택합니다.

저는 기본적으로 같은 문제에 직면해 있었습니다.저는 BIN 폴더를 삭제한 다음 주문 및 가져오기에 사용하지 않는 jar 파일을 eclipse에서 제거했습니다.그 후 효과가 있었습니다.

이 파티에 늦었지만 나중에 다시 찾을 수 있도록 나만의 경험을 추가합니다 :)

안드로이드 sdk와 이클립스 애드인을 업그레이드한 후 이 문제에 부딪혔습니다.어떠한 업그레이드도 처벌받지 않습니다!

저에게 문제는 도서관 프로젝트와 관련이 있었고, 제 앱은 표준 자바 프로젝트와 안드로이드 라이브러리 프로젝트를 모두 선호합니다.Java Build Path 설정이 Android 라이브러리 프로젝트 src 및 res 폴더를 Source 목록에 포함하는 것을 발견했습니다(소스의 bin, src 및 res를 언급하는 모든 사람에게 투표하는 것도 문제였습니다).

솔루션은 다음과 같습니다.

  1. 소스 목록 및 프로젝트 목록 설정의 Java 빌드 경로 섹션에서 참조되는 모든 Android 라이브러리 소스 및 프로젝트 참조 제거
  2. 순수 Java 종속성이 프로젝트 목록에 나열되어 있는지 확인하고, 클래스가 apk에 포함되도록 주문 및 내보내기 탭에서 확인합니다.
  3. 모든 Android 라이브러리 종속성이 프로젝트 속성의 Android 섹션, 선택한 SDK 버전 아래의 라이브러리 섹션에 나열되어 있는지 확인합니다.

다른 솔루션에서 이 모든 것을 통합하는 데는 오랜 시간이 걸렸습니다!휴!

제가 add 14에서 15로 업그레이드했을 때 이것을 만났고, 작동시키기 위해 결국 설정과 함께 .eclipse 폴더를 삭제하고 add 15를 다시 설치했습니다.

Bin 디렉토리 삭제에 대한 Terrys 응답과 ANT 디렉토리 위치에 대한 Larrys 응답을 읽은 후:

프로젝트 BIN 디렉토리에 있는 파일을 BIN/CLASSES로 이동하여 실행하고 있습니다.

편집 1 그런 다음 두 번째 실행에서 실패했습니다...

편집 2 소클로즈드 이클립스가 파일을 원래 위치로 다시 이동하고 모든 작업이 가능합니다.음 뭐라고요?나는 이것이 왜 효과가 있었는지 아는 척하지 않습니다.변경 사항이 있으면 업데이트합니다.

편집 3 백업을 통해 BIN 디렉터리 및 BIN/CLASS에 중복 파일이 있음을 확인했습니다.

즉, 위치 모두에 파일을 저장하지 않는 것이 좋습니다.적어도 저에게는 그것이 효과가 있었습니다.

eclipse.ini 파일을 수정하고 최대 메모리 매개 변수를 다음으로 설정합니다.

-Xmx1024m

그런 다음 컴퓨터를 다시 시작합니다.

그것은 나에게 효과가 있었다.

내가 믿는 해결책을 찾았습니까?

    [2013-04-28 23:56:09 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/coremedia/iso/AbstractBoxParser$1;

여기에는 "Lcom/coremedia/iso/AbstractBoxParser$1"이라고 쓰여 있는데, 마침 가져온 라이브러리의 위치가 문제의 원인이었습니다.com.codemedia.iso를 찾았습니다.AbstractBoxParser $1.class 및 .AbstractBoxParser.class...이 병을 가져와서 포장을 풀고 두 파일을 모두 제거한 다음 .zip으로 다시 포장하여 라이브러리에 추가하고 치료 및 작업했습니다! (업데이트 또는 추가 다운로드 없음)

립스 폴더에 두 가지 다른 버전의 Cordova.jar 파일이 있었는데, 사용하지도 않은 파일을 삭제했더니 바로 작동했습니다.전에는 몰랐고 전에는 작동하다가 갑자기 작동을 멈췄기 때문에 이상합니다.

ADTR14 업데이트는 클래스가 bin/dll 디렉토리로 이동하는 위치를 변경합니다(http://tools.android.com/recent/buildchangesinrevision14) 참조).ANT를 사용하는 경우 클래스 경로를 bin에서 bin/class로 변경해야 합니다.이것은 저에게 효과가 있었습니다.

나를 위한 솔루션:

  1. 코드 백업!
  2. 프로젝트가 아닌 프로젝트 작업 공간으로 이동하여 다음 명령을 실행합니다.

    dev1:workspace$ cd ~/Documents/workspace/.metadata/.plugins/dev1:dll$ rm -rf org.dll.core.dll

  3. Eclipse 디렉토리로 이동하여 다음 명령을 입력합니다.

    dev1:sv$ ./svclear

  4. Eclipse는 빈 작업 공간에서 시작됩니다. 프로젝트가 아직 남아 있을 것이라고 걱정하지 마십시오.기존 리소스에서 새 프로젝트를 생성하는 것이 좋습니다.

수신된 정확한 오류: [2012-02-07 14:15:53 - 덱스 로더] 덱스를 실행할 수 없음: 여러 덱스 파일이 Landroid/support/v4/view/PagerAdapter를 정의합니다; [2012-02-07 14:15:53 - ProjectCloud] Dalvik 형식으로 변환하지 못했습니다. 덱스를 실행할 수 없음: 여러 덱스 파일이 Landroid/support/v4/view/PagerAdapter를 정의합니다.

Android Manifest에 동일한 패키지 이름을 가진 라이브러리 프로젝트가 여러 개 있습니다(따라서 R.java에서 중복된 필드 이름이 생성되지 않습니다).오류를 제거하기 위해 모든 라이브러리 프로젝트에 대한 AndroidManifest.xml의 권한과 활동을 제거해야 했기 때문에 Manifest.java가 여러 번 생성되지 않았습니다.이것이 누군가를 도울 수 있기를 바랍니다.

다른 모든 제안을 시도했지만 실패했고, 프로젝트 'bin' 디렉터리의 모든 내용을 삭제한 후 다시 이클립스를 실행하여 작동했습니다.

라이브러리가 아닌 프로젝트를 라이브러리 프로젝트로 변환했는데 libs 폴더에 이전에 빌드된 jar 파일이 있었습니다.이 jar 파일을 제거하면 이 오류가 사라집니다.

저는 같은 문제에 직면했고 앱을 푸시하는 동안 몇 개의 jar 파일이 두 번 로드되어 다중 덱스 오류가 발생했습니다.프로젝트 속성 -> Java Build Path로 이동하여 두 번 로드되는 jar의 체크를 해제하십시오.

[나를 위해 해결됨]

중복 라이브러리 "JAR 파일"을 제거한 다음 BuildConfig.java 파일, Clean project 및 해당 작업을 제거합니다.

언급URL : https://stackoverflow.com/questions/7870265/unable-to-execute-dex-multiple-dex-files-define-lcom-myapp-rarray

반응형