如何解决此内部GWT编译器错误

时间:2013-04-30 12:27:08

标签: google-app-engine gwt

我无法在GWT中编译为js。

devmode一如既往地运行良好。我在编译之间做了很多改动,所以不知道确切的位置。

有什么可以解决这个问题?

[gwt 2.5 AE 1.7.1]

[ERROR] Unexpected internal compiler error

java.lang.RuntimeException:内存中流的意外IOException     在com.google.gwt.dev.javac.CompilationUnit.getTypes(CompilationUnit.java:324)     在com.google.gwt.dev.jjs.impl.UnifyAst.assimilateUnit(UnifyAst.java:672)     在com.google.gwt.dev.jjs.impl.UnifyAst.searchForTypeBySource(UnifyAst.java:985)     在com.google.gwt.dev.jjs.impl.UnifyAst.addRootTypes(UnifyAst.java:530)     在com.google.gwt.dev.jjs.JavaToJavaScriptCompiler.precompile(JavaToJavaScriptCompiler.java:621)     在com.google.gwt.dev.jjs.JavaScriptCompiler.precompile(JavaScriptCompiler.java:33)     在com.google.gwt.dev.Precompile.precompile(Precompile.java:278)     在com.google.gwt.dev.Precompile.precompile(Precompile.java:229)     在com.google.gwt.dev.Precompile.precompile(Precompile.java:141)     在com.google.gwt.dev.Compiler.run(Compiler.java:232)     在com.google.gwt.dev.Compiler.run(Compiler.java:198)     在com.google.gwt.dev.Compiler $ 1.run(Compiler.java:170)     在com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:88)     在com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(CompileTaskRunner.java:82)     在com.google.gwt.dev.Compiler.main(Compiler.java:177) 引起:java.io.InvalidClassException:com.google.gwt.dev.jjs.ast.JDeclaredType;本地类不兼容:stream classdesc serialVersionUID = -8155793964565947646,本地类serialVersionUID = -1052417216019896795     at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:604)     at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1601)     在java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1514)     at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1601)     在java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1514)     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1750)     在java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)     at java.util.ArrayList.readObject(ArrayList.java:733)     at sun.reflect.GeneratedMethodAccessor21.invoke(未知来源)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     在java.lang.reflect.Method.invoke(Method.java:601)     at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004)     在java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1872)     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1777)     在java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)     在com.google.gwt.dev.jjs.ast.JProgram.deserializeTypes(JProgram.java:203)     在com.google.gwt.dev.javac.CompilationUnit.getTypes(CompilationUnit.java:322)     ......还有14个 关闭PersistentUnitCache线程

2 个答案:

答案 0 :(得分:16)

解决方案:删除名为gwt-unitCache

的文件夹

答案 1 :(得分:1)

当您看到“本地类不兼容:stream classdesc serialVersionUID = -8155793964565947646,local class serialVersionUID = -1052417216019896795”时,您可能尝试使用较旧的GWT编译器编译较新的GWT版本。使用Maven时的解决方案是更改GWT版本。例如

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<version>2.5.0</version>
<executions>
    <!-- GWT version detected from dependencyManagement -->
    <execution>
        <goals>
            <goal>compile</goal>
        </goals>
    </execution>
</executions>

<version>2.5.0</version>更改为<version>2.5.1</version>,它适用于我。