2016-07-22 44 views
0

我正嘗試在項目中使用elemetos聚合物GWT,但收到異常。 這與調用該聚合物元件的代碼:在GWT項目中使用GWT聚合​​物元素?

public void onModuleLoad() { 
try { 
RootPanel.get() add (new PaperButton().); 
} Catch (Exception e) { 
e.printStackTrace(); 
} 

這是exessão:

Caused by: com.google.gwt.dev.shell.HostedModeException: JSNI rewriter found reference to non-existent field in a field reference or Java method tear-off: @ java.util.ArrayList :: array with at/vaadin/polymer /Polymer.java(479) 

LIB繼承XML

<Inherits name = "com.vaadin.polymer.Elements" /> 

罐子的是使用:

vaadin-gwt-polymer-elements-1.2.3.0.jar 

完成日誌控制檯:

jul 22, 2016 5:30:52 PM java.util.prefs.WindowsPreferences <init> 
ADVERTÊNCIA: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5. 
com.google.gwt.dev.jjs.InternalCompilerException: Unexpected error during visit. 
    at com.google.gwt.dev.js.ast.JsVisitor.translateException(JsVisitor.java:482) 
    at com.google.gwt.dev.js.ast.JsVisitor.doTraverse(JsVisitor.java:469) 
    at com.google.gwt.dev.js.ast.JsVisitor.doAccept(JsVisitor.java:444) 
    at com.google.gwt.dev.js.ast.JsVisitor.accept(JsVisitor.java:109) 
    at com.google.gwt.dev.js.JsToStringGenerationVisitor.visit(JsToStringGenerationVisitor.java:201) 
    at com.google.gwt.dev.js.ast.JsBinaryOperation.traverse(JsBinaryOperation.java:81) 
    at com.google.gwt.dev.js.ast.JsVisitor.doTraverse(JsVisitor.java:467) 
    at com.google.gwt.dev.js.ast.JsVisitor.doAccept(JsVisitor.java:444) 
    at com.google.gwt.dev.js.ast.JsVisitor.accept(JsVisitor.java:109) 
    at com.google.gwt.dev.js.JsToStringGenerationVisitor.visit(JsToStringGenerationVisitor.java:436) 
    at com.google.gwt.dev.js.ast.JsExprStmt.traverse(JsExprStmt.java:41) 
    at com.google.gwt.dev.js.ast.JsVisitor.doTraverse(JsVisitor.java:467) 
    at com.google.gwt.dev.js.ast.JsVisitor.doAccept(JsVisitor.java:444) 
    at com.google.gwt.dev.js.ast.JsVisitor.accept(JsVisitor.java:109) 
    at com.google.gwt.dev.js.JsToStringGenerationVisitor.printJsBlock(JsToStringGenerationVisitor.java:939) 
    at com.google.gwt.dev.js.JsSourceGenerationVisitor.visit(JsSourceGenerationVisitor.java:59) 
    at com.google.gwt.dev.js.ast.JsBlock.traverse(JsBlock.java:52) 
    at com.google.gwt.dev.js.ast.JsVisitor.doTraverse(JsVisitor.java:467) 
    at com.google.gwt.dev.js.ast.JsVisitor.doAccept(JsVisitor.java:444) 
    at com.google.gwt.dev.js.ast.JsVisitor.accept(JsVisitor.java:109) 
    at com.google.gwt.dev.shell.Jsni.generateJavaScriptForHostedMode(Jsni.java:249) 
    at com.google.gwt.dev.shell.Jsni.getJavaScriptForHostedMode(Jsni.java:237) 
    at com.google.gwt.dev.shell.ModuleSpaceOOPHM.createNativeMethods(ModuleSpaceOOPHM.java:52) 
    at com.google.gwt.dev.shell.CompilingClassLoader.injectJsniMethods(CompilingClassLoader.java:1408) 
    at com.google.gwt.dev.shell.CompilingClassLoader.findClass(CompilingClassLoader.java:1178) 
    at com.google.gwt.dev.shell.CompilingClassLoader.loadClass(CompilingClassLoader.java:1223) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at com.vaadin.polymer.PolymerWidget.<init>(PolymerWidget.java:17) 
    at com.vaadin.polymer.paper.widget.PaperButton.<init>(PaperButton.java:105) 
    at com.vaadin.polymer.paper.widget.PaperButton.<init>(PaperButton.java:98) 
    at br.client.Aprend.onModuleLoad(Aprend.java:29) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:497) 
    at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:423) 
    at com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:200) 
    at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:530) 
    at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:368) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: com.google.gwt.dev.shell.HostedModeException: JSNI rewriter found reference to non-existent field in a field reference or java method tear-off: @java.util.ArrayList::array at com/vaadin/polymer/Polymer.java(479) 
    at com.google.gwt.dev.shell.Jsni$JsSourceGenWithJsniIdentFixup.visit(Jsni.java:115) 
    at com.google.gwt.dev.js.ast.JsNameRef.traverse(JsNameRef.java:108) 
    at com.google.gwt.dev.js.ast.JsVisitor.doTraverse(JsVisitor.java:467) 
    ... 38 more 
+0

抱歉,沒有發佈英文。但我已經編輯並修正了 –

+0

發佈完成控制檯日誌 – Ajax

+0

發佈我的朋友 –

回答

1

與正在使用的GWT - 聚合物 - 元素版本(1.2.3.0)需要使用GWT 2.8快照,由於JsInterop其中使用。請參閱Vaadin的官方通知:

注意:我們廣泛使用JsInterop GWT中的一項新功能,以便輕鬆與JavaScript進行交互。它在GWT-2.7中是實驗性的,並將在GWT-2.8.0中保持穩定,但從gwt-polymer-elements-1.2.1.0.beta1開始,我們不再支持2.7.0,也不支持傳統的JsInterop語法。如果你運行你的應用程序時,得到了在JavaScript控制檯未捕獲java.lang.ClassCastException錯誤,它意味着你沒有使用GWT-2.8.0-SNAPSHOT

而且你的語法是錯誤的,

RootPanel.get() add (new PaperButton().);應更改爲RootPanel.get().add(new PaperButton());

我測試版本1.1.3.0-alpha1與GWT 2.7(SuperDevMode),它工作正常。所以請檢查你的GWT版本。

還有一個提示:對於跨瀏覽器的支持,你應該添加

<script src="your_app_name/bower_components/webcomponentsjs/webcomponents.js"></script>

到HTML文件的頭部。

+0

HI。我正在使用GWT 2.8.0-beta1版本。我發現的唯一版本是這個測試版,請有鏈接在哪裏下載GWT和聚合物,你測試和funcinou,所以我也可以測試謝謝。 對不起語法,但忘記和翻譯,也有錯誤的代碼部分;) –

+0

我用Eclipse(Neon)與GWT 2.7和谷歌插件的Eclipse 4.4/4.5/4.6(從https://dl.google.com /eclipse/plugin/4.6)與vaadin-gwt-polymer-elements-1.1.3.0-alpha1(來自http://repo1.maven.org/maven2/com/vaadin/polymer/vaadin-gwt-polymer-elements/1.1 .3.0-α1 /)。但我認爲GWT 2.8-beta1與聚合物1.2.3.0也應該有效 - 也許我今天晚上可以測試。 – mxlse