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 回答