尝试获取屏幕宽度时,出现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类错误?
最佳答案
呼叫Page.getCurrent().getBrowserWindowWidth()
。BrowserInfo
是客户端类,您不应在服务器端类中使用此类。我会避免将客户端库放在类路径上。 getBrowserWindowWidth
是本机的,因为这是GWT编译器桥接到JavaScript代码的方式。如果您查看源代码,则JavaScript代码以特殊格式的注释显示。