2013-04-30 82 views
6

我無法編譯爲GWT中的js。我該如何解決這個內部GWT編譯器錯誤

devmode一如既往地運行良好。編譯之間我做了很多改變,所以不知道在哪裏看。

什麼可以解決這個問題?

[GWT 2.5 AE 1.7.1]

[ERROR] Unexpected internal compiler error 

了java.lang.RuntimeException:在com.google.gwt.dev.javac.CompilationUnit.getTypes(CompilationUnit上內存流 意外IOException異常。 java:324) at com.google.gwt.dev.jjs.impl.UnifyAst.assimilateUnit(UnifyAst.java:672) 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) 在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) at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(CompileTaskRunner.java:82) at com.google.gwt.dev.Compiler.main(Compiler.java :177) 導致:java.io.InvalidClassException:com.google.gwt.dev.jjs.ast.JDeclaredType;局部類不相容:流classdesc的serialVersionUID = -8155793964565947646,局部類的serialVersionUID = -1052417216019896795 在java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:604) 在java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1601) 在java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1514) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1601) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1514) at java .io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1750) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) 在java.util.ArrayList.readObject(ArrayList.java:733) 在sun.reflect.GeneratedMethodAccessor21.invoke(未知來源) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang中.reflect.Method.invoke(Method.java:601) 在java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004) 在java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1872) 在java.io .ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1777) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) at com.google.gwt .dev.jjs.ast.JProgram.deserializeTypes(JProgram.java :203) 在com.google.gwt.dev.javac.CompilationUnit.getTypes(CompilationUnit.java:322) ...14多 關閉PersistentUnitCache線程

+0

您是否嘗試過最新版本的GWT和GAE,或者您有沒有使用最新版本的原因? – 2013-04-30 12:35:10

+0

是的 - 升級到GWT 2.5.1後,我只注意到問題,所以恢復回來看看是否能解決問題。無論如何,解決方案:刪除gwt-UnitCache - – user1258245 2013-07-07 11:34:51

回答

15

解決辦法:刪除文件夾命名爲gwt-unitCache

+2

也與GWT 2.5一起工作,謝謝! – Marconius 2013-07-06 14:56:50

1

當你看到這個「局部類不兼容:流classdesc的serialVersionUID = -8155793964565947646,本地類的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>,它爲我工作。