【发布时间】:2014-09-15 00:14:48
【问题描述】:
我在使用 WebView 时遇到问题,当我加载它时,它看起来全是彩色闪烁,然后直接进入 stackOverFlowError。
对我来说似乎是一种递归。我不认为通过 -Xss 增加堆栈大小(已经尝试过)在这里会有所帮助。 我有哪些选择?
这可能是由 BIG SCENE GRAPH 引起的吗?我有相当重的图形密集型 UI 553 节点当主视图打开时,266 节点当浏览器页面加载时。在分离的 FXML 文件和分离的控制器中。
GMaps 出错(使用 webView):
java.lang.StackOverflowError
at com.sun.prism.impl.BaseGraphics.<init>(BaseGraphics.java:89)
at com.sun.prism.impl.ps.BaseShaderGraphics.<init>(BaseShaderGraphics.java:86)
at com.sun.prism.d3d.D3DGraphics.<init>(D3DGraphics.java:42)
at com.sun.prism.d3d.D3DGraphics.create(D3DGraphics.java:65)
at com.sun.prism.d3d.D3DRTTexture.createGraphics(D3DRTTexture.java:77)
at com.sun.javafx.webkit.prism.RTImage.getGraphics(RTImage.java:68)
at com.sun.javafx.webkit.prism.WCBufferedContext.init(WCBufferedContext.java:58)
at com.sun.javafx.webkit.prism.WCBufferedContext.getGraphics(WCBufferedContext.java:47)
at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.setClip(WCGraphicsPrismContext.java:314)
at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.setClip(WCGraphicsPrismContext.java:349)
at com.sun.javafx.webkit.prism.WCBufferedContext.init(WCBufferedContext.java:64)
at com.sun.javafx.webkit.prism.WCBufferedContext.getGraphics(WCBufferedContext.java:47)
at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.setClip(WCGraphicsPrismContext.java:314)
at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.setClip(WCGraphicsPrismContext.java:349)
at com.sun.javafx.webkit.prism.WCBufferedContext.init(WCBufferedContext.java:64)
at com.sun.javafx.webkit.prism.WCBufferedContext.getGraphics(WCBufferedContext.java:47)
at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.setClip(WCGraphicsPrismContext.java:314)
at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.setClip(WCGraphicsPrismContext.java:349)
at com.sun.javafx.webkit.prism.WCBufferedContext.init(WCBufferedContext.java:64)
at com.sun.javafx.webkit.prism.WCBufferedContext.getGraphics(WCBufferedContext.java:47)
at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.setClip(WCGraphicsPrismContext.java:314)
at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.setClip(WCGraphicsPrismContext.java:349)
at com.sun.javafx.webkit.prism.WCBufferedContext.init(WCBufferedContext.java:64)
at com.sun.javafx.webkit.prism.WCBufferedContext.getGraphics(WCBufferedContext.java:47)
at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.setClip(WCGraphicsPrismContext.java:314)
at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.setClip(WCGraphicsPrismContext.java:349)
at com.sun.javafx.webkit.prism.WCBufferedContext.init(WCBufferedContext.java:64)
at com.sun.javafx.webkit.prism.WCBufferedContext.getGraphics(WCBufferedContext.java:47)
at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.setClip(WCGraphicsPrismContext.java:314)
at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.setClip(WCGraphicsPrismContext.java:349)
at com.sun.javafx.webkit.prism.WCBufferedContext.init(WCBufferedContext.java:64)
at com.sun.javafx.webkit.prism.WCBufferedContext.getGraphics(WCBufferedContext.java:47)
at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.setClip(WCGraphicsPrismContext.java:314)
at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.setClip(WCGraphicsPrismContext.java:349)
at com.sun.javafx.webkit.prism.WCBufferedContext.init(WCBufferedContext.java:64)
at com.sun.javafx.webkit.prism.WCBufferedContext.getGraphics(WCBufferedContext.java:47)
at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.setClip(WCGraphicsPrismContext.java:314)
at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.setClip(WCGraphicsPrismContext.java:349)
at com.sun.javafx.webkit.prism.WCBufferedContext.init(WCBufferedContext.java:64)
at com.sun.javafx.webkit.prism.WCBufferedContext.getGraphics(WCBufferedContext.java:47)
at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.setClip(WCGraphicsPrismContext.java:314)
at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.setClip(WCGraphicsPrismContext.java:349)
at com.sun.javafx.webkit.prism.WCBufferedContext.init(WCBufferedContext.java:64)
at com.sun.javafx.webkit.prism.WCBufferedContext.getGraphics(WCBufferedContext.java:47)
at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.setClip(WCGraphicsPrismContext.java:314)
at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.setClip(WCGraphicsPrismContext.java:349)
at com.sun.javafx.webkit.prism.WCBufferedContext.init(WCBufferedContext.java:64)
at com.sun.javafx.webkit.prism.WCBufferedContext.getGraphics(WCBufferedContext.java:47)
at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.setClip(WCGraphicsPrismContext.java:314)
at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.setClip(WCGraphicsPrismContext.java:349)
at com.sun.javafx.webkit.prism.WCBufferedContext.init(WCBufferedContext.java:64)
at com.sun.javafx.webkit.prism.WCBufferedContext.getGraphics(WCBufferedContext.java:47)
at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.setClip(WCGraphicsPrismContext.java:314)
at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.setClip(WCGraphicsPrismContext.java:349)
at com.sun.javafx.webkit.prism.WCBufferedContext.init(WCBufferedContext.java:64)
at com.sun.javafx.webkit.prism.WCBufferedContext.getGraphics(WCBufferedContext.java:47)
...and so on
另一个 WebView 上的错误(Vanilla 未使用库):
java.lang.StackOverflowError
at com.sun.javafx.geom.transform.AffineBase.transform(AffineBase.java:1021)
at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.transformClip(WCGraphicsPrismContext.java:262)
at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.setClip(WCGraphicsPrismContext.java:301)
at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.setClip(WCGraphicsPrismContext.java:349)
at com.sun.javafx.webkit.prism.WCBufferedContext.init(WCBufferedContext.java:64)
at com.sun.javafx.webkit.prism.WCBufferedContext.getGraphics(WCBufferedContext.java:47)
at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.setClip(WCGraphicsPrismContext.java:314)
at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.setClip(WCGraphicsPrismContext.java:349)
at com.sun.javafx.webkit.prism.WCBufferedContext.init(WCBufferedContext.java:64)
at com.sun.javafx.webkit.prism.WCBufferedContext.getGraphics(WCBufferedContext.java:47)
at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.setClip(WCGraphicsPrismContext.java:314)
at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.setClip(WCGraphicsPrismContext.java:349)
at com.sun.javafx.webkit.prism.WCBufferedContext.init(WCBufferedContext.java:64)
at com.sun.javafx.webkit.prism.WCBufferedContext.getGraphics(WCBufferedContext.java:47)
at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.setClip(WCGraphicsPrismContext.java:314)
at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.setClip(WCGraphicsPrismContext.java:349)
at com.sun.javafx.webkit.prism.WCBufferedContext.init(WCBufferedContext.java:64)
at com.sun.javafx.webkit.prism.WCBufferedContext.getGraphics(WCBufferedContext.java:47)
可以在我之前的问题中找到正在发生的事情的图片:https://stackoverflow.com/questions/25247703/javafx-webview-rendering-graphical-glitches 当时我还没有收到这个错误,只是一个小故障。现在它把我带到了这个。
在某些更改后,仅图形故障不会引发异常芽(转到页面 google.com -> sector.sk -> facebook.com 等 stackoverflow 被抛出。我最多可以更改 1/2 个网站,然后它抛出的应用程序停止回应。)
-Xss 现在是默认值。
据我所知,我使用的是最新的javafx and java 8 u20。
【问题讨论】:
标签: java webview javafx stack-overflow