【问题标题】:Error: Internal compiler error java.lang.IncompatibleClassChangeError:错误:内部编译器错误 java.lang.IncompatibleClassChangeError:
【发布时间】:2016-09-21 14:37:43
【问题描述】:

我正在使用 IDE:Eclipse Indigo 和 jre7,GWT SDK 2.4 用于我的 GWT 项目。 在编译项目时,我收到以下错误消息:

[ERROR]  Internal compiler error
java.lang.IncompatibleClassChangeError: com.google.gwt.user.client.rpc.impl.RemoteServiceProxy and com.google.gwt.user.client.rpc.impl.RemoteServiceProxy$ServiceHelper disagree on InnerClasses attribute
    at java.lang.Class.getDeclaringClass(Native Method)
    at java.lang.Class.getEnclosingClass(Unknown Source)
    at java.lang.Class.getCanonicalName(Unknown Source)
    at com.google.gwt.user.rebind.rpc.ProxyCreator.generateProxyMethod(ProxyCreator.java:497)
    at com.google.gwt.user.rebind.rpc.ProxyCreator.generateProxyMethods(ProxyCreator.java:605)
    at com.google.gwt.user.rebind.rpc.ProxyCreator.create(ProxyCreator.java:332)
    at com.google.gwt.user.rebind.rpc.ServiceInterfaceProxyGenerator.generateIncrementally(ServiceInterfaceProxyGenerator.java:60)
    at com.google.gwt.dev.javac.StandardGeneratorContext.runGeneratorIncrementally(StandardGeneratorContext.java:647)
    at com.google.gwt.dev.cfg.RuleGenerateWith.realize(RuleGenerateWith.java:41)
    at com.google.gwt.dev.shell.StandardRebindOracle$Rebinder.rebind(StandardRebindOracle.java:78)
    at com.google.gwt.dev.shell.StandardRebindOracle.rebind(StandardRebindOracle.java:268)
    at com.google.gwt.dev.shell.StandardRebindOracle.rebind(StandardRebindOracle.java:257)
    at com.google.gwt.dev.DistillerRebindPermutationOracle.getAllPossibleRebindAnswers(DistillerRebindPermutationOracle.java:91)
    at com.google.gwt.dev.jdt.WebModeCompilerFrontEnd.doFindAdditionalTypesUsingRebinds(WebModeCompilerFrontEnd.java:96)
    at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl.process(AbstractCompiler.java:254)
    at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:444)
    at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl.compile(AbstractCompiler.java:173)
    at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl.compile(AbstractCompiler.java:288)
    at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl.access$400(AbstractCompiler.java:139)
    at com.google.gwt.dev.jdt.AbstractCompiler.compile(AbstractCompiler.java:588)
    at com.google.gwt.dev.jdt.BasicWebModeCompiler.getCompilationUnitDeclarations(BasicWebModeCompiler.java:97)
    at com.google.gwt.dev.jdt.WebModeCompilerFrontEnd.getCompilationUnitDeclarations(WebModeCompilerFrontEnd.java:52)
    at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler.precompile(JavaToJavaScriptCompiler.java:569)
    at com.google.gwt.dev.jjs.JavaScriptCompiler.precompile(JavaScriptCompiler.java:33)
    at com.google.gwt.dev.Precompile.precompile(Precompile.java:284)
    at com.google.gwt.dev.Precompile.precompile(Precompile.java:233)
    at com.google.gwt.dev.Precompile.precompile(Precompile.java:145)
    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)

什么可能导致这个错误?

【问题讨论】:

    标签: java gwt


    【解决方案1】:

    您可以在 SO 上查看一个非常有趣的问题,这里是 - 我指的是 question

    此错误通常是由于将任何非static、非private 字段/方法更改为static 或反之亦然。您可以从每个答案中学到一个有趣的观点,这将帮助您缩小当前面临的实际问题。

    您的 RPC 调用的客户端和服务器端代码应该是您检查此问题所在的第一个点(引用 jar 或创建的 GWT *.js 文件)

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2011-08-26
      • 1970-01-01
      • 2021-04-06
      • 2010-11-08
      • 1970-01-01
      • 2014-05-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多