덱스를 실행할 수 없음: 여러 개의 덱스 파일이 Lcom/myapp/R$ 어레이를 정의합니다.
로 :ADT
14 저는 더 이상 제 프로젝트를 만들 수 없습니다.업데이트하기 전에는 잘 구축되어 있었습니다.
오류:
[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)라는 두 개가 있었습니다. 저는 후자를 삭제하고 프로젝트를 정상적으로 다시 빌드했습니다.
- 일식이 다가옵니다.
- 프로젝트 폴더 내의 bin 폴더를 삭제합니다.
- 이클립스를 시작하고 프로젝트를 정리합니다.
- 이제 실행하면 문제가 사라집니다.
다른 사람들이 언급했듯이 빌드 경로에 동일한 클래스의 복사본이 여러 개 있을 때 발생합니다. 클래스 경로에 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를 언급하는 모든 사람에게 투표하는 것도 문제였습니다).
솔루션은 다음과 같습니다.
- 소스 목록 및 프로젝트 목록 설정의 Java 빌드 경로 섹션에서 참조되는 모든 Android 라이브러리 소스 및 프로젝트 참조 제거
- 순수 Java 종속성이 프로젝트 목록에 나열되어 있는지 확인하고, 클래스가 apk에 포함되도록 주문 및 내보내기 탭에서 확인합니다.
- 모든 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로 변경해야 합니다.이것은 저에게 효과가 있었습니다.
나를 위한 솔루션:
- 코드 백업!
프로젝트가 아닌 프로젝트 작업 공간으로 이동하여 다음 명령을 실행합니다.
dev1:workspace$ cd ~/Documents/workspace/.metadata/.plugins/dev1:dll$ rm -rf org.dll.core.dll
Eclipse 디렉토리로 이동하여 다음 명령을 입력합니다.
dev1:sv$ ./svclear
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
'programing' 카테고리의 다른 글
재설정 방법 -- 하위 디렉터리 하드 (0) | 2023.05.22 |
---|---|
트랜잭션 범위를 올바르게 사용하는 방법 (0) | 2023.05.22 |
연산자 성능에서 Mongo $ (0) | 2023.05.22 |
Git에서 저자와 커미셔너의 차이점은 무엇입니까? (0) | 2023.05.22 |
*모든* Excel interop 개체를 마샬을 사용하여 해제해야 합니까?ReleaseComObject? (0) | 2023.05.22 |