当我尝试像这样获取屏幕宽度时,出现 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
是 native 的,因为这是 GWT 编译器桥接到 JavaScript 代码的方式。如果您查看源代码,JavaScript 代码位于特殊格式的注释中。
关于exception - Vaadin 7 获取屏幕宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15067744/