首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

android, 使用ant打包时,dex步骤出outofmemory异常

2012-03-02 
android, 使用ant打包时,dex步骤出outofmemory错误。错误堆栈如下:dex:[echo] Converting compiled files a

android, 使用ant打包时,dex步骤出outofmemory错误。
错误堆栈如下:
dex: 
  [echo] Converting compiled files and external libraries into 
release/classes.dex... 
  [apply] UNEXPECTED TOP-LEVEL ERROR: 
  [apply] java.lang.OutOfMemoryError: Java heap space 
  [apply] at java.util.Arrays.copyOf(Unknown Source) 
  [apply] at java.util.Arrays.copyOf(Unknown Source) 
  [apply] at java.util.ArrayList.ensureCapacity(Unknown Source) 
  [apply] at java.util.ArrayList.add(Unknown Source) 
  [apply] at com.android.dx.ssa.SCCP.addUsersToWorklist(SCCP.java: 
106) 
  [apply] at com.android.dx.ssa.SCCP.simulatePhi(SCCP.java:188) 
  [apply] at com.android.dx.ssa.SCCP.simulateBlock(SCCP.java:199) 
  [apply] at com.android.dx.ssa.SCCP.run(SCCP.java:402) 
  [apply] at com.android.dx.ssa.SCCP.process(SCCP.java:84) 
  [apply] at com.android.dx.ssa.Optimizer.runSsaFormSteps 
(Optimizer.java:161) 
  [apply] at com.android.dx.ssa.Optimizer.optimize(Optimizer.java: 
101) 
  [apply] at com.android.dx.ssa.Optimizer.optimize(Optimizer.java: 
74) 
  [apply] at com.android.dx.dex.cf.CfTranslator.processMethods 
(CfTranslator.java:269) 
  [apply] at com.android.dx.dex.cf.CfTranslator.translate0 
(CfTranslator.java:131) 
  [apply] at com.android.dx.dex.cf.CfTranslator.translate 
(CfTranslator.java:85) 
  [apply] at com.android.dx.command.dexer.Main.processClass 
(Main.java:297) 
  [apply] at com.android.dx.command.dexer.Main.processFileBytes 
(Main.java:276) 
  [apply] at com.android.dx.command.dexer.Main.access$100(Main.java: 
56) 
  [apply] at com.android.dx.command.dexer.Main$1.processFileBytes 
(Main.java:228) 
  [apply] at com.android.dx.cf.direct.ClassPathOpener.processOne 
(ClassPathOpener.java:134) 
  [apply] at 
com.android.dx.cf.direct.ClassPathOpener.processDirectory 
(ClassPathOpener.java:190) 
  [apply] at com.android.dx.cf.direct.ClassPathOpener.processOne 
(ClassPathOpener.java:122) 
  [apply] at 
com.android.dx.cf.direct.ClassPathOpener.processDirectory 
(ClassPathOpener.java:190) 
  [apply] at com.android.dx.cf.direct.ClassPathOpener.processOne 
(ClassPathOpener.java:122) 
  [apply] at 
com.android.dx.cf.direct.ClassPathOpener.processDirectory 
(ClassPathOpener.java:190) 
  [apply] at com.android.dx.cf.direct.ClassPathOpener.processOne 
(ClassPathOpener.java:122) 
  [apply] at 
com.android.dx.cf.direct.ClassPathOpener.processDirectory 
(ClassPathOpener.java:190) 
  [apply] at com.android.dx.cf.direct.ClassPathOpener.processOne 
(ClassPathOpener.java:122) 
  [apply] at com.android.dx.cf.direct.ClassPathOpener.process 
(ClassPathOpener.java:108) 
  [apply] at com.android.dx.command.dexer.Main.processOne(Main.java: 
245) 
  [apply] at com.android.dx.command.dexer.Main.processAllFiles 
(Main.java:183) 
  [apply] at com.android.dx.command.dexer.Main.run(Main.java:139) 
BUILD FAILED 
F:xxxx\build.xml:30: The following error occurred while executing this 
line: 
F:\xxxx\android_build.xml:185: apply returned: 3 

小弟使用ant打包的时候出现的错误。用eclipse可以正常打包。


编译后的.class文件总大小约为1m,占用空间1.7m,最大文件约87k(试过裁剪到60多k,也是过不去)
使用一半代码(即用桩模块)的时候代码量约一半大小的时候能正常打包。
有没哪位大大能帮忙解决这个问题?

p.s:使用ant打包的过程中,插入了许多自定义的操作,但即使完全使用系统生成的build.xml打包,也会报这个错误。

[解决办法]
高人情景,帮忙顶一下
[解决办法]
可以修改platforms\android-1.6\tools中的dx.bat文件,把REM set javaOpts=-Xmx256M前面的注释去了,并加大Xmx的值
或者dx文件中的#javaOpts=-Xmx256M

热点排行