我在GWT2.7.0中遇到了这个问题:在Chrome中,Datepicker没有固定在DateBox上。我已经尝试升级到gwt 2.8.2,但当我尝试编译代码时出现以下异常:
[ERROR] An internal compiler exception occurred
[INFO] com.google.gwt.dev.jjs.InternalCompilerException: Unexpected error during visit.
[INFO] at com.google.gwt.dev.jjs.ast.JVisitor.translateException(JVisitor.java:111)
[INFO] at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:276)
[INFO] at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:265)
[INFO] at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:118)
[INFO] at com.google.gwt.dev.jjs.ast.JCastOperation.traverse(JCastOperation.java:76)
[INFO] at com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:361)
[INFO] at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:273)
[INFO] at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:265)
[INFO] at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:118)
[INFO] at com.google.gwt.dev.jjs.ast.JCastOperation.traverse(JCastOperation.java:76)
[INFO] at com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:361)
[INFO] at com.google.gwt.dev.jjs.ast.JModVisitor.acceptImmutable(JModVisitor.java:305)
[INFO] at com.google.gwt.dev.jjs.ast.JMethodCall.visitChildren(JMethodCall.java:275)
[INFO] at com.google.gwt.dev.jjs.ast.JMethodCall.traverse(JMethodCall.java:266)
[INFO] at com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:361)
[INFO] at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:273)
[INFO] at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:265)
[INFO] at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:118)
[INFO] at com.google.gwt.dev.jjs.ast.JExpressionStatement.traverse(JExpressionStatement.java:42)
[INFO] at com.google.gwt.dev.jjs.ast.JModVisitor$ListContext.traverse(JModVisitor.java:88)
[INFO] at com.google.gwt.dev.jjs.ast.JModVisitor.acceptWithInsertRemove(JModVisitor.java:331)
[INFO] at com.google.gwt.dev.jjs.ast.JBlock.traverse(JBlock.java:94)
[INFO] at com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:361)
[INFO] at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:273)
[INFO] at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:139)
[INFO] at com.google.gwt.dev.jjs.ast.JIfStatement.traverse(JIfStatement.java:53)
[INFO] at com.google.gwt.dev.jjs.ast.JModVisitor$ListContext.traverse(JModVisitor.java:88)
[INFO] at com.google.gwt.dev.jjs.ast.JModVisitor.acceptWithInsertRemove(JModVisitor.java:331)
[INFO] at com.google.gwt.dev.jjs.ast.JBlock.traverse(JBlock.java:94)
[INFO] at com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:361)
[INFO] at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:273)
[INFO] at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:139)
[INFO] at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:135)
[INFO] at com.google.gwt.dev.jjs.ast.JMethodBody.traverse(JMethodBody.java:83)
[INFO] at com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:361)
[INFO] at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:273)
[INFO] at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:265)
[INFO] at com.google.gwt.dev.jjs.ast.JMethod.visitChildren(JMethod.java:786)
[INFO] at com.google.gwt.dev.jjs.ast.JMethod.traverse(JMethod.java:778)
[INFO] at com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:361)
[INFO] at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:273)
[INFO] at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:265)
[INFO] at com.google.gwt.dev.jjs.impl.UnifyAst.mainLoop(UnifyAst.java:1401)
[INFO] at com.google.gwt.dev.jjs.impl.UnifyAst.exec(UnifyAst.java:896)
[INFO] at
com.google.gwt.dev.jjs.JavaToJavaScriptCompiler.unifyJavaAst(JavaToJavaScriptCompiler.java:1410)
[INFO] at
com.google.gwt.dev.jjs.JavaToJavaScriptCompiler.constructJavaAst(JavaToJavaScriptCompiler.java:1222)
[INFO] at
com.google.gwt.dev.jjs.JavaToJavaScriptCompiler.precompile(JavaToJavaScriptCompiler.java:1140)
[INFO] at
com.google.gwt.dev.jjs.JavaToJavaScriptCompiler.precompile(JavaToJavaScriptCompiler.java:255)
[INFO] at com.google.gwt.dev.Precompile.precompile(Precompile.java:255)
[INFO] at com.google.gwt.dev.Precompile.precompile(Precompile.java:202)
[INFO] at com.google.gwt.dev.Precompile.precompile(Precompile.java:143)
[INFO] at com.google.gwt.dev.Compiler.compile(Compiler.java:204)
[INFO] at com.google.gwt.dev.Compiler.compile(Compiler.java:155)
[INFO] at com.google.gwt.dev.Compiler.compile(Compiler.java:144)
[INFO] at com.google.gwt.dev.Compiler$1.run(Compiler.java:118)
[INFO] at com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:55)
[INFO] at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(CompileTaskRunner.java:50)
[INFO] at com.google.gwt.dev.Compiler.main(Compiler.java:125)
[INFO] Caused by: java.lang.NoSuchMethodError:
com.google.gwt.core.ext.typeinfo.JClassType.getMetaDataTags()[Ljava/lang/String;
[INFO] at org.googlecode.gwt.rebind.menu.ClassMenuGenerator.elabClass(ClassMenuGenerator.java:237)
[INFO] at org.googlecode.gwt.rebind.menu.ClassMenuGenerator.create(ClassMenuGenerator.java:204)
[INFO] at org.googlecode.gwt.rebind.menu.MenuGenerator.generate(MenuGenerator.java:14)
[INFO] at
com.google.gwt.core.ext.IncrementalGenerator.generateNonIncrementally(IncrementalGenerator.java:40)
[INFO] at com.google.gwt.dev.cfg.RuleGenerateWith.realize(RuleGenerateWith.java:103)
[INFO] at
com.google.gwt.dev.shell.StandardRebindOracle$Rebinder.rebind(StandardRebindOracle.java:78)
[INFO] at com.google.gwt.dev.shell.StandardRebindOracle.rebind(StandardRebindOracle.java:262)
[INFO] at com.google.gwt.dev.shell.StandardRebindOracle.rebind(StandardRebindOracle.java:251)
[INFO] at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:273)
[INFO] ... 56 more
[INFO] [ERROR] at Cdn.java(343): GWT.create(CdnMenu.class)
[INFO] com.google.gwt.dev.jjs.ast.JMethodCall
[INFO] [ERROR] at Cdn.java(343): (SMenu) GWT.create(CdnMenu.class)
[INFO] com.google.gwt.dev.jjs.ast.JCastOperation
[INFO] [ERROR] at Cdn.java(343): (SMenu) (SMenu) GWT.create(CdnMenu.class)
[INFO] com.google.gwt.dev.jjs.ast.JCastOperation
[INFO] [ERROR] at Cdn.java(343): TemplateManager.setMenu((SMenu) (SMenu)
GWT.create(CdnMenu.class))
[INFO] com.google.gwt.dev.jjs.ast.JMethodCall
[INFO] [ERROR] at Cdn.java(343): TemplateManager.setMenu((SMenu) (SMenu)
GWT.create(CdnMenu.class))
[INFO] com.google.gwt.dev.jjs.ast.JExpressionStatement
[INFO] [ERROR] at Cdn.java(165):下面是出错的一行代码:
TemplateManager.setMenu((SMenu) GWT.create(CdnMenu.class));
有什么想法吗?提前感谢Stefano
发布于 2021-05-15 06:59:25
[INFO] Caused by: java.lang.NoSuchMethodError:
com.google.gwt.core.ext.typeinfo.JClassType.getMetaDataTags()[Ljava/lang/String;
[INFO] at org.googlecode.gwt.rebind.menu.ClassMenuGenerator.elabClass(ClassMenuGenerator.java:237)
[INFO] at org.googlecode.gwt.rebind.menu.ClassMenuGenerator.create(ClassMenuGenerator.java:204)
[INFO] at org.googlecode.gwt.rebind.menu.MenuGenerator.generate(MenuGenerator.java:14)看起来您的项目使用了一些调用JClassType.getMetaDataTags的MenuGenerator,而这个方法似乎已经不存在了。此方法存在于接口HasMetadata上,该接口是deleted in 2014,但在12年前是deprecated back in 2009 -从那时起它不再起作用(根据提交消息)。
在web上搜索ClassMenuGenerator的完整类名(以及包的结构),会发现它是以前托管在Google Code上的项目的一部分,在该服务关闭时存档:Productive GWT。这些项目可以迁移到github上,但我只找到了one such migration had happened,即使在那个副本中,fork也可能没有得到维护。
好消息是修复它应该很容易,因为如上所述,元数据功能实际上自2009年以来就没有做过任何事情,所以你可能只需要派生并删除调用这些元数据方法的代码。使用最新版本的GWT编译该项目还可以更容易地找出是否还存在其他可能导致问题的问题。
https://stackoverflow.com/questions/67534520
复制相似问题