2013-02-25 114 views
2

我得到當我試圖讓屏幕寬度這樣的UnsatisfiedLinkError異常:Vaadin 7 GET屏幕寬度

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類錯誤?

回答

8

改爲撥打Page.getCurrent().getBrowserWindowWidth()

BrowserInfo是一個客戶端類,你不應該在你的服務器端類中使用它。我會避免將客戶端庫放在類路徑上。 getBrowserWindowWidth是本地的,因爲這是GWT編譯器橋接成JavaScript代碼的方式。如果您查看源代碼,則JavaScript代碼將採用特殊格式的註釋。