2013-02-25 85 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代码将采用特殊格式的注释。