프로그램/Java - Android / / 2013. 7. 30. 10:32

dx UNEXPECTED TOP-LEVEL ERROR 오류 발생시 해결 방법

반응형

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 파일을 수정해 주면 된다.


반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유