android 빌드를 하다가 아래와 같이 오류가 발생할때가 있다.
java.lang.OutOfMemoryError 발생!
The ' characters around the executable and arguments are
not part of the command.
[dx]
[dx] UNEXPECTED TOP-LEVEL ERROR:
[dx] java.lang.OutOfMemoryError: GC overhead limit exceeded
[dx] at com.android.dx.util.FixedSizeList.<init>(FixedSizeList.java:38)
[dx] at com.android.dx.rop.code.RegisterSpecList.<init>(RegisterSpecList.java:103)
[dx] at com.android.dx.cf.code.RopperMachine.getSources(RopperMachine.java:669)
[dx] at com.android.dx.cf.code.RopperMachine.run(RopperMachine.java:289)
[dx] at com.android.dx.cf.code.Simulator$SimVisitor.visitConstant(Simulator.java:692)
[dx] at com.android.dx.cf.code.BytecodeArray.parseInstruction(BytecodeArray.java:763)
[dx] at com.android.dx.cf.code.Simulator.simulate(Simulator.java:95)
[dx] at com.android.dx.cf.code.Ropper.processBlock(Ropper.java:684)
[dx] at com.android.dx.cf.code.Ropper.doit(Ropper.java:639)
[dx] at com.android.dx.cf.code.Ropper.convert(Ropper.java:252)
[dx] at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:256)
[dx] at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:134)
[dx] at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:87)
[dx] at com.android.dx.command.dexer.Main.processClass(Main.java:487)
[dx] at com.android.dx.command.dexer.Main.processFileBytes(Main.java:459)
[dx] at com.android.dx.command.dexer.Main.access$400(Main.java:67)
[dx] at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:398)
[dx] at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:245)
[dx] at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:131)
[dx] at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:109)
[dx] at com.android.dx.command.dexer.Main.processOne(Main.java:422)
[dx] at com.android.dx.command.dexer.Main.processAllFiles(Main.java:333)
[dx] at com.android.dx.command.dexer.Main.run(Main.java:209)
[dx] at com.android.dx.command.dexer.Main.main(Main.java:174)
[dx] at com.android.dx.command.Main.main(Main.java:91)
해결 방법.
dx파일을 변경하여 메모리를 늘려주자!
android-sdk-r21/platform-tools 위치에 dx 파일을 고쳐주면된다.
default 설정은 defaultMx="-Xmx1024M" 이다.
defaultMx="-Xmx2048M" 로 고쳐 주자!!
sdk r22(android api 18) 부터는 위치가 달라진다.
android-sdk-r22/build-tools/18.0.0 위치에 있는 dx 파일을 수정해 주면 된다.
'프로그램 > Java - Android' 카테고리의 다른 글
폰에 설치된 APK 파일에 접근하기 (0) | 2013.08.08 |
---|---|
android sdk r22(api18) custom dx.jar (0) | 2013.08.01 |
android - dx.jar 만들기 (0) | 2013.07.26 |
xml 에 정의한 Layout에 코드로 생성한 Layout 붙이기 (0) | 2013.07.24 |
Android - Sevice에서 디버그 하는 방법 (0) | 2013.07.15 |