[java] dex를 실행할 수 없음 : Eclipse에서 GC 오버 헤드 한계를 초과했습니다.

Git 프로젝트 OsmAnd를 다운로드하여 컴파일 할 때 Eclipse는 다음 오류를 리턴했습니다.

[Dex Loader] Unable to execute dex: GC overhead limit exceeded
[OsmAnd]     Conversion to Dalvik format failed: 
             Unable to execute dex: GC overhead limit exceeded

Google과 Stackoverflow는 -Xms40m -Xmx384m에서 변경해야한다고 말했습니다 eclipse.ini.
Dalvik 형식으로 변환하지 못했습니다 : dex : Java heap space를 실행할 수 없습니다 .
프로젝트를 정리하고 Eclipse를 다시 시작했지만 도움이되지 않았습니다.

이 링크를 찾았 습니다. Android 개발자를위한 팁 :“Dalvik 형식으로 변환하지 못했습니다 : dex를 실행할 수 없습니다 : null”
그러나 .jar프로젝트에서 입력을 변경할 대상을 알 수 없습니다 . 누구든지 도움을 줄 수 있으면 프로젝트를 그들.



답변

Eclipse.ini에서 VM 값을 변경하여 수정할 수 있습니다. 아래와 같이 값을 512 및 1024로 설정하십시오.

openFile
--launcher.XXMaxPermSize
512M
-showsplash
org.eclipse.platform
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms512m
-Xmx1024m

이미지에서 변경된 영역
여기에 이미지 설명을 입력하십시오


답변

나를 위해 다음 단계를 수행했습니다.

1) Open eclipse.ini file
2)changed
-Xms40m
-Xmx512m
to 
-Xms512m
-Xmx1024m

3)Restart eclipse

여기를 보아라


답변

eclipse.ini는 다음과 같습니다.

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20140116-2212
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
-XX:MaxPermSize=256m
-Xms40m
-Xmx512m
-Xmx1024m


답변

Android XML로 인해이 문제가 발생했다고 가정합니다.

StackOverFlow에서 다음 두 가지 문제가 서로 실현됩니다.

Eclipse에서 Android XML 파일을 클릭 할 때마다 모든 API 버전의 데이터가로드됩니다.

dex를 실행할 수 없습니다 : GC 오버 헤드 제한을 초과했습니다

내가 발견 한 번 더 솔루션을 버전 (22.6.2 또는 23.2)을 VM 값을 증가 또는 이전 ADT으로 다운 그레이드가 아닌 다른이 문제를 해결하려면

노트 :

열 때마다 XML을로드하지 않는 이전 ADT 버전 중 일부 는 첫 번째 스레드에서 설명한 대로이 GC 오버 헤드 제한을 초과 하는 메모리 오버 플로우가 없습니다.

해결책:

일식의 하단에는 쓰레기 수거통을 나타내는 쓰레기통 기호가 있습니다 . 안드로이드의 XML 파일을 닫을 때마다 휴지통을 클릭 하거나 가비지 콜렉터실행 하여 메모리를 해제 하는 것을 잊지 마십시오 . 이런 식으로 작업 영역이 이런 종류의 오류를 발생시키지 않도록 보호 할 수 있습니다.

안드로이드 XML을 매우 자주 열면 특히 나처럼 많은 UI 작업을하는 경우 RAM 한계를 초과하여 VM 값을 늘릴 수 없기 때문에 이것은 궁극적 인 솔루션 일 수 있습니다 : P

나는 이것이이 스레드에 올 모든 사람들을 도울 수 있기를 바랍니다 🙂

평온과 코드를 유지


답변

이 오류가 발생한 12 시간 후 eclipse.ini 파일 변경에 성공하지 못한 후 마침내 올바른 해결책을 찾았습니다. 내 환경 변수에는 “-Xmx512M”값을 포함하는 “_JAVA_OPTIONS”라는 변수가있었습니다. 이 값을 eclipse.ini (-Xmx4096M)와 같은 값으로 변경하면 프로젝트를 APK 파일로 다시 내보낼 수있었습니다.


답변

이 해결 방법의 이유를 모르겠지만 위의 모든 사항이 해당되지 않는 경우 항상 작동합니다.

바로 가기 또는 링크에서 일식을 시작하지 마십시오. 항상 eclipse.exe이클립스 폴더에서 파일을 엽니 다 .eclipse.ini

참고-리눅스에서만 시도했습니다.


답변

이 성가신 메시지를 피하기 위해 다음과 같이 구성을 변경해야했습니다.

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20120913-

144807
-product
com.android.ide.eclipse.adt.package.adtproduct
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
1024m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.6
-XX:MaxPermSize=256m
-Xms512m
-Xmx1024m

정답으로 표시된 답변에 따라 변경

-XX:MaxPermSize=256m
-Xms512m
-Xmx1024m

과:

--launcher.XXMaxPermSize
1024m