首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WebView用VALIDATION_ERROR_DESERIALIZATION_FAILED毁了我的应用程序

WebView用VALIDATION_ERROR_DESERIALIZATION_FAILED毁了我的应用程序
EN

Stack Overflow用户
提问于 2018-08-22 16:24:26
回答 5查看 9.5K关注 0票数 8

我正在一个网页视图中加载一个小角度的网页应用程序。我没有控制或任何信息的应用程序,除了网络包。

在web应用程序的确切位置上,我的整个Android应用程序都崩溃了,记录如下:

代码语言:javascript
复制
08-22 09:13:33.980 29145-29191/com.my.app E/chromium: [ERROR:validation_errors.cc(87)] Invalid message: VALIDATION_ERROR_DESERIALIZATION_FAILED
08-22 09:13:33.981 29145-29191/com.my.app E/chromium: [ERROR:render_process_host_impl.cc(4399)] Terminating render process for bad Mojo message: Received bad user message: Validation failed for SynchronousCompositorControlHost::ReturnFrame deserializer [VALIDATION_ERROR_DESERIALIZATION_FAILED]
    [ERROR:bad_message.cc(25)] Terminating renderer for bad IPC message, reason 123
08-22 10:05:25.284 18717-18717/mx.tide.fiuanalyticsapp E/chromium: [ERROR:aw_browser_terminator.cc(86)] Render process (18816) kill (OOM or update) wasn't handed by all associated webviews, killing application.

除了定义错误的铬源代码之外,我没有在web上找到任何东西,我不知道如何调试这个问题,因为在移动Chrome浏览器上直接打开web应用程序没有问题。

那么,你们中有谁知道这个错误可能是什么?或者至少是我可以从哪里开始调试这个问题的线索呢?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2018-08-23 15:24:10

我也遇到了同样的问题。我发现css属性will-change: transform导致了这个问题,但我不知道为什么,因为这个属性在同一文件的其他地方使用,但不会导致错误。

我找到了罪魁祸首,使用charles在网页的响应上设置了断点,并系统地从html中删除了脚本和链接。最后,我发现通过删除主css链接,应用程序不再崩溃。然后,我必须系统地从css文件中删除行,直到我发现这一行破坏了WebView。

我仍然无法弄清楚为什么这一行会破坏它,但是它被设置在html中的jpeg图像上。好像是铬的问题。我还在努力弄清楚为什么铬有问题。

票数 5
EN

Stack Overflow用户

发布于 2018-08-23 22:44:03

虽然由于@P.G.的回答,我的问题得到了解决,但我想在不访问原始web应用程序代码的情况下添加解决问题的方式,这可能会对其他人有所帮助。

因此,我需要替换导致问题的CSS,所以我下载了原来的应用CSS,修复了它,并将它上传到我自己的服务器上。然后,在安卓应用程序中,我覆盖了web视图的shouldInterceptRequest方法,每当应用程序试图加载CSS时,我都会用自己的方法替换它。

代码:

代码语言:javascript
复制
 mWebView.setWebViewClient(new WebViewClient() {

        @Override
        public WebResourceResponse shouldInterceptRequest (WebView view, WebResourceRequest request){

            String urls = request.getUrl().toString();

            //To prevent the WebView from crashing, we serve our own css modified version
            if( urls.equals("https://originalapphost.com/theircssfile.css")  ) {
                try {
                    URL url = new URL("https://myhost.com/mymodifiedcssfile.css");
                    URLConnection connection = url.openConnection();
                    return new WebResourceResponse(connection.getContentType(), connection.getHeaderField("encoding"), connection.getInputStream());
                } catch (Exception e) {
                    e.printStackTrace();
                }

            }

            return super.shouldInterceptRequest(view, request);
        }
    });

此外,我认为有一个列表的css崩溃的安卓webview将是非常有帮助的。我从这里开始,如果你找到另一个,请在这里自由评论,我会更新这个答案。

  • will-change: transform;
  • filter:url(#blur);
票数 4
EN

Stack Overflow用户

发布于 2020-07-02 13:12:18

我们也有类似的问题,在做了大量的分析后发现,这种情况发生在CSS文件中,这与宽度有关。

我们以前有过这个

代码语言:javascript
复制
.card,
.footer {
    margin: auto;
    max-width: 600px
}

并在改变后继续工作。

代码语言:javascript
复制
@media (min-width:601px) {
    .card,
    .footer {
        margin: auto;
        max-width: 600px
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51971241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档