GWT意外的内部编译器错误

3

我查看了其他与此类似的问题,想知道如何删除项目中的gwt-unitCache文件夹,但即使我这样做了,GWT编译仍然会出现相同的错误。

还有其他解决方法吗?我已经尝试过重启Eclipse、重启电脑以及清理项目生成文件夹,但都没有解决问题。

错误信息如下:

Compiling module com.cse360.CSE360Project
   [ERROR] Unexpected internal compiler error
java.lang.RuntimeException: Unexpected IOException on in-memory stream
    at com.google.gwt.dev.javac.CompilationUnit.getTypes(CompilationUnit.java:324)
    at com.google.gwt.dev.jjs.impl.UnifyAst.assimilateUnit(UnifyAst.java:672)
    at com.google.gwt.dev.jjs.impl.UnifyAst.searchForTypeByBinary(UnifyAst.java:970)
    at com.google.gwt.dev.jjs.impl.UnifyAst.translate(UnifyAst.java:1033)
    at com.google.gwt.dev.jjs.impl.UnifyAst.translate(UnifyAst.java:1024)
    at com.google.gwt.dev.jjs.impl.UnifyAst.resolveType(UnifyAst.java:940)
    at com.google.gwt.dev.jjs.impl.UnifyAst.assimilateUnit(UnifyAst.java:678)
    at com.google.gwt.dev.jjs.impl.UnifyAst.searchForTypeBySource(UnifyAst.java:985)
    at com.google.gwt.dev.jjs.impl.UnifyAst.addRootTypes(UnifyAst.java:530)
    at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler.precompile(JavaToJavaScriptCompiler.java:621)
    at com.google.gwt.dev.jjs.JavaScriptCompiler.precompile(JavaScriptCompiler.java:33)
    at com.google.gwt.dev.Precompile.precompile(Precompile.java:278)
    at com.google.gwt.dev.Precompile.precompile(Precompile.java:229)
    at com.google.gwt.dev.Precompile.precompile(Precompile.java:141)
    at com.google.gwt.dev.Compiler.run(Compiler.java:232)
    at com.google.gwt.dev.Compiler.run(Compiler.java:198)
    at com.google.gwt.dev.Compiler$1.run(Compiler.java:170)
    at com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:88)
    at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(CompileTaskRunner.java:82)
    at com.google.gwt.dev.Compiler.main(Compiler.java:177)
Caused by: java.io.InvalidClassException: com.google.gwt.dev.jjs.ast.JDeclaredType; local class incompatible: stream classdesc serialVersionUID = -8155793964565947646, local class serialVersionUID = -1052417216019896795
    at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:570)
    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1601)
    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1601)
    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1750)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:349)
    at java.util.ArrayList.readObject(ArrayList.java:593)
    at sun.reflect.GeneratedMethodAccessor16.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:979)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1873)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1777)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:349)
    at com.google.gwt.dev.jjs.ast.JProgram.deserializeTypes(JProgram.java:203)
    at com.google.gwt.dev.javac.CompilationUnit.getTypes(CompilationUnit.java:322)
    ... 19 more

2
请检查您的临时文件夹,以查找可以删除的更多预编译文件。 - koma
1
请验证您的项目中只引用了一个版本的GWT。 - Colin Alworth
1个回答

0

我发现我需要进入Java Build Path > Order and Export,并提高GWT SDK的优先级。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接