【问题标题】:How can I work around this internal GWT compiler error如何解决此内部 GWT 编译器错误
【发布时间】:2013-04-24 08:57:42
【问题描述】:

我无法在 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;本地类不兼容:流 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) 在 java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1601) 在 java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1514) 在 java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1750) 在 java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) 在 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) 在 java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) 在 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 线程

【问题讨论】:

  • 您是否尝试了 GWT 和 GAE 的最新版本,或者您没有使用最新版本的原因是什么?
  • 是的 - 我只在升级到 GWT 2.5.1 后才注意到问题,所以返回看看是否能解决它。无论如何,解决方案:删除 gwt-UnitCache -

标签: google-app-engine gwt


【解决方案1】:

解决方法:删除名为gwt-unitCache的文件夹

【讨论】:

    【解决方案2】:

    当您看到此“本地类不兼容:流 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>
    

    &lt;version&gt;2.5.0&lt;/version&gt; 更改为&lt;version&gt;2.5.1&lt;/version&gt;,它对我有用。

    【讨论】:

      猜你喜欢
      • 2014-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-24
      • 1970-01-01
      • 2021-12-10
      相关资源
      最近更新 更多