Oops! I do get the error. I was wrong when I said it worked for me. When I attempted to change the GWT version from 2.7.0 to 2.8.0 in eclipse, eclipse switched it back to 2.7.0 for reasons I cannot figure out. Given below are the offending UiBinder code, the corresponding Java code, and the stack trace when switching a running application from GWT 2.7 to 2.8. Any help would be greatly appreciated.
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> <ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:g="urn:import:com.google.gwt.user.client.ui" xmlns:m="urn:import:gwt.material.design.client.ui"> <g:HTMLPanel> <g:PopupPanel ui:field="launchPad" styleName="launch"> <m:MaterialColumn ui:field="container" shadow="3"> <!-- Dialog title --> <m:MaterialPanel styleName="centeredContentDiv peruseStandardBackground noPadding"> <m:MaterialLabel styleName="launchTitle">PeruseLab - Loading your drawings...</m:MaterialLabel> <m:MaterialProgress type="INDETERMINATE" enabled="false" ui:field="progressBar" /> <!-- The above shows the progress bar while retrieving drawing(s) for user --> </m:MaterialPanel> </m:MaterialColumn> </g:PopupPanel> </g:HTMLPanel> </ui:UiBinder> public class Loader extends Composite { interface LoaderUiBinder extends UiBinder<Widget, Loader> { } private static LoaderUiBinder uiBinder = GWT.create(LoaderUiBinder.class ); @UiField PopupPanel launchPad; @UiField MaterialColumn container; public Loader() { initWidget(uiBinder.createAndBindUi(this)); } public void hide() { clear(); launchPad.hide(true); } public void show() { launchPad.show(); } private void clear() { while (container.getWidgetCount() > 0) { container.remove(0); } } } Caused by: java.lang.NoSuchMethodError: com.google.gwt.uibinder.rebind. UiBinderWriter.<init>(Lcom/google/gwt/core/ext/typeinfo/JClassType;Ljava/ lang/String;Ljava/lang/String;Lcom/google/gwt/core/ext/typeinfo/TypeOracle; Lcom/google/gwt/uibinder/rebind/MortalLogger;Lcom/google/gwt/uibinder/rebind /FieldManager;Lcom/google/gwt/uibinder/rebind/messages/MessagesWriter;Lcom/ google/gwt/uibinder/rebind/DesignTimeUtils;Lcom/google/gwt/uibinder/rebind/ UiBinderContext;ZZLjava/lang/String;Lcom/google/gwt/dev/resource/ ResourceOracle;Lcom/google/gwt/resources/rg/GssResourceGenerator$GssOptions ;)V at com.google.gwt.uibinder.rebind.UiBinderGenerator.generateOnce( UiBinderGenerator.java:174) at com.google.gwt.uibinder.rebind.UiBinderGenerator.generate( UiBinderGenerator.java:128) at com.google.gwt.core.ext.IncrementalGenerator.generateNonIncrementally( IncrementalGenerator.java:40) at com.google.gwt.dev.javac.StandardGeneratorContext. runGeneratorIncrementally(StandardGeneratorContext.java:745) at com.google.gwt.dev.cfg.RuleGenerateWith.realize(RuleGenerateWith.java: 103) at com.google.gwt.dev.shell.StandardRebindOracle$Rebinder.rebind( StandardRebindOracle.java:78) at com.google.gwt.dev.shell.StandardRebindOracle.rebind( StandardRebindOracle.java:262) at com.google.gwt.dev.shell.StandardRebindOracle.rebind( StandardRebindOracle.java:251) at com.google.gwt.dev.PrecompilationContextCreator$1. getAllPossibleRebindAnswers(PrecompilationContextCreator.java:86) at com.google.gwt.dev.jjs.impl.UnifyAst$UnifyVisitor. createStaticRebindExpression(UnifyAst.java:519) at com.google.gwt.dev.jjs.impl.UnifyAst$UnifyVisitor.createRebindExpression (UnifyAst.java:487) at com.google.gwt.dev.jjs.impl.UnifyAst$UnifyVisitor. maybeHandleMagicMethodCall(UnifyAst.java:415) at com.google.gwt.dev.jjs.impl.UnifyAst$UnifyVisitor.visit(UnifyAst.java: 402) at com.google.gwt.dev.jjs.ast.JMethodCall.traverse(JMethodCall.java:265) at com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:361) at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:273) ... 46 more [ERROR] at Loader.java(29): GWT.create(Loader$LoaderUiBinder. class) com.google.gwt.dev.jjs.ast.JMethodCall [ERROR] at Loader.java(29): (Loader$LoaderUiBinder) GWT.create( Loader$LoaderUiBinder.class) com.google.gwt.dev.jjs.ast.JCastOperation [ERROR] at Loader.java(29): static Loader$LoaderUiBinder uiBinder = (Loader$LoaderUiBinder) GWT.create(Loader$LoaderUiBinder.class) com.google.gwt.dev.jjs.ast.JDeclarationStatement [ERROR] at Loader.java(24): { Composite.$clinit(); static Loader$LoaderUiBinder uiBinder = (Loader$LoaderUiBinder) GWT.create (Loader$LoaderUiBinder.class); } com.google.gwt.dev.jjs.ast.JBlock [ERROR] at Loader.java(24): { Composite.$clinit(); static Loader$LoaderUiBinder uiBinder = (Loader$LoaderUiBinder) GWT.create (Loader$LoaderUiBinder.class); } com.google.gwt.dev.jjs.ast.JMethodBody [ERROR] at Loader.java(24): com.snkv.peruse.client.Loader. $clinit()V com.google.gwt.dev.jjs.ast.JMethod [ERROR] Compiler returned false [WARN] recompile failed On Monday, November 21, 2016 at 4:07:42 PM UTC-5, jgindin wrote: > > In our app, we have a UiBinder widget (SomeViewImpl) which has, as its > root element, a widget which itself is a UiBinder widget > (CollectionManagementLayout). > > My UiBinder declaration in SomeViewImpl looks like this: > interface CollectionManagementPanelUiBinder extends > UiBinder<CollectionManagementLayout, SomeViewImpl> {} > > > The UiBinder XML for the SomeViewImpl class starts off like this: > <collectionmanagement:CollectionManagementLayout ui:field="layout"> > . . . > </collectionmanagement:CollectionManagementLayout> > > > > This code compiles just fine in GWT 2.7, but with 2.8, I get the following > error: > > [ERROR] Errors in > 'generated://09CDEAB17C92C8C75AB00C9F2F0DF847/com/myco/myproduct/client/stuff/collections/SomeViewImpl_CollectionManagementPanelUiBinderImpl.java' > [ERROR] Line 17: The interface UiBinder cannot be implemented more > than once with different arguments: > UiBinder<CollectionManagementLayout,SomeViewImpl> and > UiBinder<CollectionManagementLayout,SomeViewImpl> > See snapshot: > /tmp/com.myco.myproduct.client.stuff.collections.SomeViewImpl_CollectionManagementPanelUiBinderImpl3472216513944602205.java > Tracing compile failure path for type > 'com.myco.myproduct.client.stuff.collections.SomeViewImpl_CollectionManagementPanelUiBinderImpl' > [ERROR] Errors in > 'generated://09CDEAB17C92C8C75AB00C9F2F0DF847/com/myco/myproduct/client/stuff/collections/SomeViewImpl_CollectionManagementPanelUiBinderImpl.java' > [ERROR] Line 17: The interface UiBinder cannot be implemented > more than once with different arguments: > UiBinder<CollectionManagementLayout,SomeViewImpl> and > UiBinder<CollectionManagementLayout,SomeViewImpl> > > > > The generated code looks like this: > public class SomeViewImpl_CollectionManagementPanelUiBinderImpl > implements UiBinder<CollectionManagementLayout, SomeViewImpl>, > SomeViewImpl.CollectionManagementPanelUiBinder { > > > I worked around this by changing the UiBinder declaration in SomeViewImpl > to be: > interface CollectionManagementPanelUiBinder extends UiBinder<Widget, > SomeViewImpl> {} > > > *My question is*: Should this have failed in GWT 2.7? Or is there a bug > in GWT 2.8? > > thanks, > > jay > > -- You received this message because you are subscribed to the Google Groups "GWT Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/google-web-toolkit. For more options, visit https://groups.google.com/d/optout.
