2

次のように画面の幅を取得しようとすると、UnsatisfiedLinkError 例外が発生します。

int screenWidth = BrowserInfo.get().getScreenWidth();

BrowserInfo.getBrowserString() で例外がスローされます。

Feb 25, 2013 2:03:40 PM com.vaadin.server.DefaultErrorHandler doDefault
SEVERE: 
java.lang.UnsatisfiedLinkError: com.vaadin.client.BrowserInfo.getBrowserString()Ljava/lang/String;
at com.vaadin.client.BrowserInfo.getBrowserString(Native Method)
at com.vaadin.client.BrowserInfo.<init>(BrowserInfo.java:76)
at com.vaadin.client.BrowserInfo.get(BrowserInfo.java:67)
at com.vaadin.client.BrowserInfo.<clinit>(BrowserInfo.java:56)
at layoutHandler.MainLayoutHanlder.setCssClasses(MainLayoutHanlder.java:34)

これは Vaadin 7 のバグですか、それとも BrowserInfo クラスの使い方が間違っているだけですか?

4

1 に答える 1

8

Page.getCurrent().getBrowserWindowWidth()代わりに電話してください。

BrowserInfoはクライアント クラスであるため、サーバー サイド クラスでは使用しないでください。クライアント ライブラリをクラス パスに配置することはまったく避けたいと思います。getBrowserWindowWidthこれは GWT コンパイラが JavaScript コードにブリッジする方法であるため、ネイティブです。ソースを見ると、JavaScript コードは特殊な形式のコメントになっています。

于 2013-02-25T14:48:44.500 に答える