2016-09-21 242 views
0

我正在使用IDE:Eclipse Indigo with jre7,GWT SDK 2.4用于我的GWT项目。 在编写项目,我得到了以下错误消息:错误:内部编译器错误java.lang.IncompatibleClassChangeError:

[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) 

什么导致这个错误?

回答

0

有一个非常有趣的问题,你可以看看在这里,它是 - 我指出的question

此错误通常是由于对非static,非private字段/方法中的任何非private字段/方法进行了更改,反之亦然。有一个有趣的观点,你可以从每个答案中学到,这将有助于缩小你现在面临的实际问题。

客户和你的RPC调用的服务器端代码应该是你的第一个点以检查这个问题应该是(指在罐子或创建GWT * .js文件)

希望这有助于!