Java 对gwt-user.jar进行预索引会导致垃圾收集器出现OutOfMemoryError

Java 对gwt-user.jar进行预索引会导致垃圾收集器出现OutOfMemoryError,java,gwt,compiler-construction,intellij-13,garbage,Java,Gwt,Compiler Construction,Intellij 13,Garbage,我一直在尝试用Android项目设置gwt,在将sdk添加到我的构建路径后,编译仍然存在这个问题 我使用的是IntelliJ Ultimate 13.1,android应用程序是它附带的框架 以下是完整的回溯: Error:Android Pre Dex: [gwt-user.jar] Unable to execute DX Error:Android Pre Dex: [gwt-user.jar] java.lang.OutOfMemoryError: GC overhead limit e

我一直在尝试用Android项目设置gwt,在将sdk添加到我的构建路径后,编译仍然存在这个问题

我使用的是IntelliJ Ultimate 13.1,android应用程序是它附带的框架

以下是完整的回溯:

Error:Android Pre Dex: [gwt-user.jar] Unable to execute DX
Error:Android Pre Dex: [gwt-user.jar] java.lang.OutOfMemoryError: GC overhead limit exceeded
Error:Android Pre Dex: [gwt-user.jar] at com.android.dx.util.Bits.makeBitSet(Bits.java:38)
Error:Android Pre Dex: [gwt-user.jar] at com.android.dx.util.BitIntSet.<init>(BitIntSet.java:35)
Error:Android Pre Dex: [gwt-user.jar] at com.android.dx.ssa.SetFactory.makeDomFrontSet(SetFactory.java:66)
Error:Android Pre Dex: [gwt-user.jar] at com.android.dx.ssa.DomFront.run(DomFront.java:103)
Error:Android Pre Dex: [gwt-user.jar] at com.android.dx.ssa.SsaConverter.placePhiFunctions(SsaConverter.java:297)
Error:Android Pre Dex: [gwt-user.jar] at com.android.dx.ssa.SsaConverter.convertToSsaMethod(SsaConverter.java:51)
Error:Android Pre Dex: [gwt-user.jar] at com.android.dx.ssa.Optimizer.optimize(Optimizer.java:98)
Error:Android Pre Dex: [gwt-user.jar] at com.android.dx.ssa.Optimizer.optimize(Optimizer.java:72)
Error:Android Pre Dex: [gwt-user.jar] at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:299)
Error:Android Pre Dex: [gwt-user.jar] at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:139)
Error:Android Pre Dex: [gwt-user.jar] at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:94)
Error:Android Pre Dex: [gwt-user.jar] at com.android.dx.command.dexer.Main.processClass(Main.java:682)
Error:Android Pre Dex: [gwt-user.jar] at com.android.dx.command.dexer.Main.processFileBytes(Main.java:634)
Error:Android Pre Dex: [gwt-user.jar] at com.android.dx.command.dexer.Main.access$600(Main.java:78)
Error:Android Pre Dex: [gwt-user.jar] at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:572)
Error:Android Pre Dex: [gwt-user.jar] at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)
Error:Android Pre Dex: [gwt-user.jar] at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
Error:Android Pre Dex: [gwt-user.jar] at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
Error:Android Pre Dex: [gwt-user.jar] at com.android.dx.command.dexer.Main.processOne(Main.java:596)
Error:Android Pre Dex: [gwt-user.jar] at com.android.dx.command.dexer.Main.processAllFiles(Main.java:498)
Error:Android Pre Dex: [gwt-user.jar] at com.android.dx.command.dexer.Main.runMonoDex(Main.java:264)
Error:Android Pre Dex: [gwt-user.jar] at com.android.dx.command.dexer.Main.run(Main.java:230)
Error:Android Pre Dex: [gwt-user.jar] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Error:Android Pre Dex: [gwt-user.jar] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
Error:Android Pre Dex: [gwt-user.jar] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
Error:Android Pre Dex: [gwt-user.jar] at java.lang.reflect.Method.invoke(Method.java:606)
Error:Android Pre Dex: [gwt-user.jar] at org.jetbrains.android.compiler.tools.AndroidDxRunner.runDex(AndroidDxRunner.java:161)
Error:Android Pre Dex: [gwt-user.jar] at org.jetbrains.android.compiler.tools.AndroidDxRunner.main(AndroidDxRunner.java:294)
错误:Android Pre-Dex:[gwt user.jar]无法执行DX
错误:Android Pre-Dex:[gwt user.jar]java.lang.OutOfMemoryError:超出了GC开销限制
错误:com.Android.dx.util.Bits.makeBitSet(Bits.java:38)上的Android Pre-Dex:[gwt user.jar]
错误:com.Android.dx.util.bitinset上的Android Pre-Dex:[gwt user.jar]。(bitinset.java:35)
错误:com.Android.dx.ssa.SetFactory.makeDomFrontSet(SetFactory.java:66)上的Android Pre-Dex:[gwt user.jar]
错误:com.Android.dx.ssa.DomFront.run(DomFront.java:103)上的Android Pre-Dex:[gwt user.jar]
错误:com.Android.dx.ssa.SsaConverter.placePhiFunctions(SsaConverter.java:297)上的Android Pre-Dex:[gwt user.jar]
错误:com.Android.dx.ssa.SsaConverter.convertToSsaMethod(SsaConverter.java:51)上的Android Pre-Dex:[gwt user.jar]
错误:位于com.Android.dx.ssa.Optimizer.optimize(Optimizer.java:98)的Android Pre-Dex:[gwt user.jar]
错误:位于com.Android.dx.ssa.Optimizer.optimize(Optimizer.java:72)的Android Pre-Dex:[gwt user.jar]
错误:com.Android.dx.Dex.cf.CfTranslator.processMethods(CfTranslator.java:299)上的Android Pre-Dex:[gwt user.jar]
错误:com.Android.dx.Dex.cf.CfTranslator.translate0(CfTranslator.java:139)上的Android Pre-Dex:[gwt user.jar]
错误:com.Android.dx.Dex.cf.CfTranslator.translate(CfTranslator.java:94)上的Android Pre-Dex:[gwt user.jar]
错误:com.Android.dx.command.dexer.Main.processClass(Main.java:682)上的Android Pre-Dex:[gwt user.jar]
错误:位于com.Android.dx.command.dexer.Main.processFileBytes(Main.java:634)的Android Pre-Dex:[gwt user.jar]
错误:Android Pre-Dex:[gwt user.jar]位于com.Android.dx.command.dexer.Main.access$600(Main.java:78)
错误:位于com.Android.dx.command.dexer.Main$1.processFileBytes(Main.java:572)的Android Pre-Dex:[gwt user.jar]
错误:位于com.Android.dx.cf.direct.ClassPathPener.processArchive(classPathPener.java:284)的Android Pre-Dex:[gwt user.jar]
错误:位于com.Android.dx.cf.direct.ClassPathPener.processOne(classPathPener.java:166)的Android Pre-Dex:[gwt user.jar]
错误:com.Android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)上的Android Pre-Dex:[gwt user.jar]
错误:位于com.Android.dx.command.dexer.Main.processOne(Main.java:596)的Android Pre-Dex:[gwt user.jar]
错误:位于com.Android.dx.command.dexer.Main.processAllFiles(Main.java:498)的Android Pre-Dex:[gwt user.jar]
错误:位于com.Android.dx.command.dexer.Main.runMonoDex(Main.java:264)的Android Pre-Dex:[gwt user.jar]
错误:位于com.Android.dx.command.dexer.Main.run(Main.java:230)的Android Pre-Dex:[gwt user.jar]
错误:位于sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)的Android Pre-Dex:[gwt user.jar]
错误:位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)的Android Pre-Dex:[gwt user.jar]
错误:位于sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)的Android Pre-Dex:[gwt user.jar]
错误:Android Pre-Dex:[gwt user.jar]位于java.lang.reflect.Method.invoke(Method.java:606)
错误:org.jetbrains.Android.compiler.tools.AndroidDxRunner.runDex(AndroidDxRunner.java:161)上的Android Pre-Dex:[gwt user.jar]
错误:org.jetbrains.Android.compiler.tools.AndroidDxRunner.main(AndroidDxRunner.java:294)上的Android Pre-Dex:[gwt user.jar]
披露:我从未做过任何严肃的Android开发,我也不知道“pre-dex”到底是什么意思

绝对没有理由将gwt用户打包到Android应用程序中


要么打包GWT生成的JS,只需要在编译时使用GWT;或者您想使用RequestFactory,应该使用
RequestFactory client.jar
。在其他情况下,您可能希望使用不在
requestfactory客户端中的其他GWT类(例如
RegExp
SafeHtml
),在这种情况下,您必须将它们提取到您自己的JAR中,或者只使用看起来合理的
GWT servlet
,我想我当时正在使用GWT,但不确定为什么,我会考虑将其从我的项目中删除,谢谢!