Android WebView:网址加载后崩溃

2024-01-26

当使用我的 webView 加载 url 时,应用程序在几秒钟后崩溃(没有错误日志...)。

我的代码:

 wv = new WebView(this);
        wv.clearCache(true);
        wv.clearHistory();
        wv.getSettings().setJavaScriptEnabled(true);
        wv.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);

        wv.setDownloadListener(new DownloadListener() {
            @Override
            public void onDownloadStart(String url, String userAgent,
                                        String contentDisposition, String mimetype, long contentLength) {
                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.setType(mimetype);
                intent.setData(Uri.parse(url));
                startActivity(intent);
            }
        });


        wv.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {

                // TODO change for other domains
                URL nextUrl;
                try {
                    nextUrl = new URL(url.toString());
                }catch (MalformedURLException e){
                    nextUrl = null;
                }

                if(nextUrl !=null && nextUrl.getHost().toString().equals(DOMAIN)) {
                    Toast.makeText(mContext, nextUrl.getHost().toString(), Toast.LENGTH_SHORT).show();
                    view.loadUrl(url);
                    return false;

                }else{
                    Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
                    startActivity(browserIntent);
                    return true;
                }

            }
        });

        wv.setWebChromeClient(new WebChromeClient() {
            public void onProgressChanged(WebView view, int progress) {
                MainActivity.this.setProgress(progress * 1000);
            }
            public boolean onConsoleMessage(ConsoleMessage cm) {
                Log.d("MyProject: WebView: ", cm.message() + " -- From line "
                    + cm.lineNumber() + " of "
                    + cm.sourceId() );
            return true;
        }
        });

        wv.loadUrl(URL);
        setContentView(wv);

Log :

01-20 18:00:50.798    7233-7288/ my.appli.com I/dalvikvm﹕ "WebViewCoreThread" prio=5 tid=12 NATIVE
01-20 18:00:50.798    7233-7288/ my.appli.com I/dalvikvm﹕ | group="main" sCount=0 dsCount=0 obj=0x419a0be0 self=0x68f6c750
01-20 18:00:50.798    7233-7288/ my.appli.com I/dalvikvm﹕ | sysTid=7288 nice=10 sched=0/0 cgrp=apps/bg_non_interactive handle=1773204176
01-20 18:00:50.799    7233-7288/ my.appli.com I/dalvikvm﹕ | state=R schedstat=( 0 0 0 ) utm=2326 stm=119 core=0
01-20 18:00:50.841    7233-7288/ my.appli.com I/dalvikvm﹕ #00  pc 000012a0  /system/lib/libcorkscrew.so (unwind_backtrace_thread+27)
01-20 18:00:50.841    7233-7288/ my.appli.com I/dalvikvm﹕ #01  pc 0006235c  /system/lib/libdvm.so (dvmDumpNativeStack(DebugOutputTarget const*, int)+35)
01-20 18:00:50.841    7233-7288/ my.appli.com I/dalvikvm﹕ #02  pc 000561bc  /system/lib/libdvm.so (dvmDumpThreadEx(DebugOutputTarget const*, Thread*, bool)+303)
01-20 18:00:50.841    7233-7288/ my.appli.com I/dalvikvm﹕ #03  pc 00056256  /system/lib/libdvm.so (dvmDumpThread(Thread*, bool)+25)
01-20 18:00:50.841    7233-7288/ my.appli.com I/dalvikvm﹕ #04  pc 000478c8  /system/lib/libdvm.so (dvmDebuggerSignalHandler(int, siginfo*, void*)+15)
01-20 18:00:50.841    7233-7288/ my.appli.com I/dalvikvm﹕ at android.webkit.JWebCoreJavaBridge.sharedTimerFired(Native Method)
01-20 18:00:50.841    7233-7288/ my.appli.com I/dalvikvm﹕ at android.webkit.JWebCoreJavaBridge.fireSharedTimer(JWebCoreJavaBridge.java:92)
01-20 18:00:50.841    7233-7288/ my.appli.com I/dalvikvm﹕ at android.webkit.JWebCoreJavaBridge.handleMessage(JWebCoreJavaBridge.java:108)
01-20 18:00:50.841    7233-7288/ my.appli.com I/dalvikvm﹕ at android.os.Handler.dispatchMessage(Handler.java:99)
01-20 18:00:50.841    7233-7288/ my.appli.com I/dalvikvm﹕ at android.os.Looper.loop(Looper.java:137)
01-20 18:00:50.841    7233-7288/ my.appli.com I/dalvikvm﹕ at android.webkit.WebViewCore$WebCoreThread.run(WebViewCore.java:900)
01-20 18:00:50.841    7233-7288/ my.appli.com I/dalvikvm﹕ at java.lang.Thread.run(Thread.java:856)
01-20 18:00:50.841    7233-7288/ my.appli.com I/dalvikvm﹕ [ 01-20 18:00:50.841  7233: 7288 F/libc     ]
    Fatal signal 11 (SIGSEGV) at 0x0000001c (code=1), thread 7288 (WebViewCoreThre)

当我尝试使用我的 Android 设备(4.1)的默认浏览器加载相同的 URL 时,我遇到了同样的问题(崩溃)。

我要加载的网址是:

http://presentbox.jp http://presentbox.jp

感谢您的帮助。

---编辑1

我尝试过使用最近的 Android 手机 (4.4),应用程序没有崩溃。

出于调试目的,我删除了网站的所有重要部分(图像、js...),但向下滚动后应用程序仍然崩溃。


// Edit: 找到了!罪魁祸首在第2540行general.css:

#head-search-form{display: block;margin: 30px 0;}

更具体地说,它是display: block这在某种程度上使得WebView呛。我不是一个网络开发人员,但是与flex or none似乎不再导致崩溃(而且我无法分辨移动设备上的视觉差异)。希望有帮助!


我已经建立了一个小型测试项目,并且能够在(虚拟)Android 4.1 设备上重现崩溃。它似乎只在页面完全加载后滚动时发生。 IE。只要您不开始滚动,您就可以毫无问题地展开菜单抽屉...

我能够将罪魁祸首的范围缩小到general.css http://presentbox.jp/wp-content/themes/hermes/css/general.css?ver=4.4.1。一旦您不加载该样式表,页面就会正常工作并滚动,但当然看起来不会很漂亮。

Since general.css计数 3300 多行,我建议您通过修复来开始搜索实际原因。如果这不能解决问题,请开始禁用与照片网格相关的样式规则,尤其是涉及动画/转换的任何内容。如果我能抽出时间,我自己也可以尝试一下。

以下是更广泛的堆栈跟踪,仅供您参考。其他人也许也能在那里找到更多指示。

mh.test.webview A/libc: Fatal signal 11 (SIGSEGV) at 0x00001f08 (code=1), thread 11949 (WebViewCoreThre)
I/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG: Build fingerprint: 'generic/vbox86p/vbox86p:4.1.1/JRO03S/eng.buildbot.20151117.133415:userdebug/test-keys'
I/DEBUG: pid: 11930, tid: 11949, name: WebViewCoreThre  >>> mh.test.webview <<<
I/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00001f08
I/DEBUG:     eax b84902e4  ebx 9ba8b488  ecx b804b028  edx b83c0224
I/DEBUG:     esi b8490360  edi b804b028
I/DEBUG:     xcs 00000073  xds 0000007b  xes 0000007b  xfs 00000000  xss 0000007b
I/DEBUG:     eip 00001f08  ebp 997b9748  esp 997b96dc  flags 00010296
I/DEBUG:     #00  pc 00001f08  <unknown>
I/DEBUG:     #01  pc 00344fd6  /system/lib/libwebcore.so (WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WTF::HashMap<WebCore::RenderLayer*, WebCore::IntRect, WTF::PtrHash<WebCore::RenderLayer*>, WTF::HashTraits<WebCore::RenderLayer*>, WTF::HashTraits<WebCore::IntRect> >*, WebCore::CompositingState&, bool&)+38)
I/DEBUG:     #02  pc 003454bb  /system/lib/libwebcore.so (WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WTF::HashMap<WebCore::RenderLayer*, WebCore::IntRect, WTF::PtrHash<WebCore::RenderLayer*>, WTF::HashTraits<WebCore::RenderLayer*>, WTF::HashTraits<WebCore::IntRect> >*, WebCore::CompositingState&, bool&)+1291)
I/DEBUG:     #03  pc 003454bb  /system/lib/libwebcore.so (WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WTF::HashMap<WebCore::RenderLayer*, WebCore::IntRect, WTF::PtrHash<WebCore::RenderLayer*>, WTF::HashTraits<WebCore::RenderLayer*>, WTF::HashTraits<WebCore::IntRect> >*, WebCore::CompositingState&, bool&)+1291)
I/DEBUG:     #04  pc 003454bb  /system/lib/libwebcore.so (WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WTF::HashMap<WebCore::RenderLayer*, WebCore::IntRect, WTF::PtrHash<WebCore::RenderLayer*>, WTF::HashTraits<WebCore::RenderLayer*>, WTF::HashTraits<WebCore::IntRect> >*, WebCore::CompositingState&, bool&)+1291)
I/DEBUG:     #05  pc 003454bb  /system/lib/libwebcore.so (WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WTF::HashMap<WebCore::RenderLayer*, WebCore::IntRect, WTF::PtrHash<WebCore::RenderLayer*>, WTF::HashTraits<WebCore::RenderLayer*>, WTF::HashTraits<WebCore::IntRect> >*, WebCore::CompositingState&, bool&)+1291)
I/DEBUG:     #06  pc 00346c55  /system/lib/libwebcore.so (WebCore::RenderLayerCompositor::updateCompositingLayers(WebCore::CompositingUpdateType, WebCore::RenderLayer*)+213)
I/DEBUG:     #07  pc 0020e727  /system/lib/libwebcore.so (WebCore::FrameView::layout(bool)+1159)
I/DEBUG:     #08  pc 0068126f  /system/lib/libwebcore.so (WebCore::Document::updateLayout()+127)
I/DEBUG:     #09  pc 0068bbda  /system/lib/libwebcore.so (WebCore::Document::updateLayoutIgnorePendingStylesheets()+90)
I/DEBUG:     #10  pc 005ead53  /system/lib/libwebcore.so (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue(int, WebCore::EUpdateLayout) const+467)
I/DEBUG:     #11  pc 005f35e9  /system/lib/libwebcore.so (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue(int) const+41)
I/DEBUG:     #12  pc 005e68d7  /system/lib/libwebcore.so (WebCore::CSSComputedStyleDeclaration::getPropertyValue(int) const+55)
I/DEBUG:     #13  pc 006297f8  /system/lib/libwebcore.so (WebCore::CSSStyleDeclaration::getPropertyValue(WTF::String const&)+88)
I/DEBUG:     #14  pc 004d9475  /system/lib/libwebcore.so (WebCore::CSSStyleDeclarationInternal::getPropertyValueCallback(v8::Arguments const&)+181)
I/DEBUG:     #15  pc 000efdd4  <unknown>
I/DEBUG:     #16  pc 0005cf6b  <unknown>
I/DEBUG:     #17  pc 000bb32f  <unknown>
I/DEBUG:     #18  pc 00003b41  <unknown>
I/DEBUG:     #19  pc 000f47ce  <unknown>
I/DEBUG:     #20  pc 0001a5a3  <unknown>
I/DEBUG:     #21  pc 000065e3  <unknown>
I/DEBUG:     #22  pc 00003b41  <unknown>
I/DEBUG:     #23  pc 00024c59  <unknown>
I/DEBUG:     #24  pc 00024dad  <unknown>
I/DEBUG:     #25  pc 00003b41  <unknown>
I/DEBUG:     #26  pc 0001a59c  <unknown>
I/DEBUG:     #27  pc 000d7172  <unknown>
I/DEBUG:     #28  pc 0001a5a3  <unknown>
I/DEBUG:     #29  pc 000d40ed  <unknown>
I/DEBUG:     #30  pc 00017bf9  <unknown>
I/DEBUG:     #31  pc 00008c2a  <unknown>
I/DEBUG:          997b969c  00000000  
I/DEBUG:          997b96a0  00000000  
I/DEBUG:          997b96a4  00000000  
I/DEBUG:          997b96a8  00000000  
I/DEBUG:          997b96ac  00000000  
I/DEBUG:          997b96b0  00000000  
I/DEBUG:          997b96b4  00000000  
I/DEBUG:          997b96b8  00000000  
I/DEBUG:          997b96bc  00000000  
I/DEBUG:          997b96c0  00000000  
I/DEBUG:          997b96c4  00000000  
I/DEBUG:          997b96c8  00000000  
I/DEBUG:          997b96cc  00000000  
I/DEBUG:          997b96d0  00000000  
I/DEBUG:          997b96d4  00000000  
I/DEBUG:          997b96d8  00000000  
I/DEBUG:     #00  997b96dc  9ad1cdd4  /system/lib/libwebcore.so (WebCore::RenderLayer::updateLayerPosition()+52)
I/DEBUG:          997b96e0  b84902e4  [heap]
I/DEBUG:          997b96e4  b8490090  [heap]
I/DEBUG:          997b96e8  0000000f  
I/DEBUG:          997b96ec  0000002f  
I/DEBUG:          997b96f0  b8490090  [heap]
I/DEBUG:          997b96f4  00000001  
I/DEBUG:          997b96f8  9ad2204e  /system/lib/libwebcore.so (WebCore::RenderLayer::repaintIncludingNonCompositingDescendants(WebCore::RenderBoxModelObject*)+14)
I/DEBUG:          997b96fc  b827f428  [heap]
I/DEBUG:          997b9700  9ba8b488  /system/lib/libwebcore.so
I/DEBUG:          997b9704  b8490090  [heap]
I/DEBUG:          997b9708  997b9748  [stack:11949]
I/DEBUG:          997b970c  9ad35d38  /system/lib/libwebcore.so (WebCore::RenderLayerCompositor::updateBacking(WebCore::RenderLayer*, WebCore::RenderLayerCompositor::CompositingChangeRepaint)+344)
I/DEBUG:          997b9710  b8490014  [heap]
I/DEBUG:          997b9714  b848fe3c  [heap]
I/DEBUG:          997b9718  00000012  
I/DEBUG:          ........  ........
I/DEBUG:     #01  997b9750  b8490360  [heap]
I/DEBUG:          997b9754  b8490090  [heap]
I/DEBUG:          997b9758  00000000  
I/DEBUG:          997b975c  997b98e0  [stack:11949]
I/DEBUG:          997b9760  997ba84f  [stack:11949]
I/DEBUG:          997b9764  b843a9e4  [heap]
I/DEBUG:          997b9768  00000034  
I/DEBUG:          997b976c  00000180  
I/DEBUG:          997b9770  b848fe3c  [heap]
I/DEBUG:          997b9774  b85257f8  [heap]
I/DEBUG:          997b9778  9ace0300  /system/lib/libwebcore.so (WebCore::RenderBox::dirtyLineBoxes(bool)+80)
I/DEBUG:          997b977c  43400000  
I/DEBUG:          997b9780  b83fe51c  [heap]
I/DEBUG:          997b9784  997b9788  [stack:11949]
I/DEBUG:          997b9788  004a0000  
I/DEBUG:          997b978c  b848feb8  [heap]
I/DEBUG:          ........  ........
I/DEBUG:     #02  997b9aa0  b804b028  [heap]
I/DEBUG:          997b9aa4  b8490360  [heap]
I/DEBUG:          997b9aa8  00000000  
I/DEBUG:          997b9aac  997b9c30  [stack:11949]
I/DEBUG:          997b9ab0  997ba84f  [stack:11949]
I/DEBUG:          997b9ab4  b83fe51c  [heap]
I/DEBUG:          997b9ab8  00000000  
I/DEBUG:          997b9abc  00000001  
I/DEBUG:          997b9ac0  b86fd038  [heap]
I/DEBUG:          997b9ac4  b86fd368  [heap]
I/DEBUG:          997b9ac8  997b9b48  [stack:11949]
I/DEBUG:          997b9acc  9adac54a  /system/lib/libwebcore.so (WebCore::TransformState::move(int, int, WebCore::TransformState::TransformAccumulation)+58)
I/DEBUG:          997b9ad0  b83fe678  [heap]
I/DEBUG:          997b9ad4  b8294d4c  [heap]
I/DEBUG:          997b9ad8  00580b05  
I/DEBUG:          997b9adc  b83fe770  [heap]
I/DEBUG:          ........  ........
I/DEBUG:     (no map below)
I/DEBUG:     (no map for address)
I/DEBUG:     20c1e000-20c1f000 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android WebView:网址加载后崩溃 的相关文章

  • 如何使用 Bolt 协议将对象数组(批量插入)插入到 Neo4j 中(javascript)

    1 将带有对象数组的http post发送到服务器 id 1 title one id 2 title two 2 在服务器上接收帖子并使用bolt批量插入neo4j let data req body set up bolt let db
  • Jquery获取选中的复选框

    您好 我想获取页面中选定复选框的列表 实际上我真正需要的是获取复选框旁边的元素的文本 该元素是一个 html 元素 li 代码如下 但它不起作用 这是我当前的 jQuery document ready function target cl
  • 如何以编程方式获取有关 Android 中所有正在运行的活动的信息?

    在 android 中 您可以通过观看 Logcat 来获取有关正在运行的活动的信息 例如 如果您打开摄像头 它就会记录在 Logcat 中 有没有办法以编程方式获取该信息 ActivityManager m ActivityManager
  • 使用本地存储在从另一个表保存的 HTML TABLE 中打印 JSON,以便我在另一个页面上打印我的表

    在我的作业中 我必须使用用户输入中的数据并将数据保存在本地存储中 我必须以水平表格式将这些数据从本地存储打印到其他页面 为此 我编写了用于用户输入并将数据保存在本地存储中的代码 div p p div
  • Jquery 悬停卡

    我在用着http designwithpc com Plugins Hovercard http designwithpc com Plugins Hovercard 但我不知道如何在悬停卡上声明 var 每个工作描述都有自己的 ID 当悬
  • 显示具有多个父代的 D3 树

    我目前有this http bl ocks org mbostock 4339083图已实现 我希望在描述具有多个父节点的子节点时保持结构和可折叠性 有没有办法做到这一点 我研究了力图 但我也想保留一组层次结构 这意味着 1 级的父级可以有
  • 通过 WiFi 将视频从一部 Android 手机直播到另一部手机

    我已经在互联网上搜索了好几天关于如何通过 WiFi 连接实现从 Android 手机到另一部 Android 手机的视频流功能 但我似乎找不到任何有用的东西 我查看了 Android 开发人员的示例代码 stackoverflow goog
  • 在特定页面上执行 javascript 的正确“Rails”方式

    我试图在特定页面上运行 javascript 而我唯一的解决方案似乎是反模式 我有controller js内部生成的assets javascripts 我在用着gem jquery turbolinks 我的代码类似于以下内容 docu
  • 雅虎商店订单 API 访问

    我花了很长时间试图弄清楚 Yahoo Store API 的内容 我在互联网上搜索了一些例子 但几乎什么也没找到 我已经创建了我的请求 String data data data
  • 在 Internet Explorer 中使用什么来监视 jscript 内存使用情况

    我们正在调试 GWT 应用程序 在 Firefox 中运行正常 在 IE6 0 中开始运行正常 但一段时间后 它就会崩溃并开始爬行 经过一些测试后 我们怀疑存在一些内存问题 使用了太多内存 内存泄漏等 除了使用taskmanager和pro
  • Android webview 滚动不起作用

    我正在尝试在网络视图中向下滚动到页面底部 我正在使用谷歌在其教程中提供的网络视图示例 我正在使用这行代码来尝试滚动 但它不起作用 mWebView pageDown true 关于如何使其以编程方式滚动有什么建议吗 谢谢 public cl
  • Twitter 登录说明

    我想在 Android 中创建一个 Twitter 应用程序 为此 我想创建一个登录页面并登录到 Twitter 为此 我们需要消费者密钥和消费者密钥 这是什么意思 要创建此登录页面 除了 Twitter 帐户之外 我们还需要其他任何东西吗
  • Android:使用 OAuth 访问 google 任务时出现问题

    由于 google 任务没有公共 api 我想编写解决方法并像浏览器一样请求数据 然后解析结果以进一步显示 为了访问数据 我使用 google 实现了 OAuth 身份验证来访问此 url https mail google com htt
  • 在 C# 中遍历 ANTLR AST 的教程?

    有人知道在 C 中遍历 ANTLR 生成的 AST 的教程吗 我能找到的最接近的是this https web archive org web 20201019210638 http www manuelabadia com blog Pe
  • Angular.js:如何从无序列表中获取 orderBy 或过滤器来工作?

    尝试根据价格和评级 在返回的对象中 进行排序 我宁愿用 ng click 和 li 来代替使用选择菜单 有没有办法做到这一点 我环顾四周 这是我能想到的最接近的 ul class restaurant filter li i class i
  • Java 2d 游戏中的路径查找?

    本质上它是我正在开发的一款吃豆人克隆游戏 我有一个 Enemy 类 并创建了该类的 4 个实例 它们都代表游戏的 4 个幽灵 所有幽灵都会在屏幕的随机区域启动 然后它们必须朝着吃豆人角色前进 当玩家控制吃豆人并移动它时 他们应该跟随它并尽可
  • Manifest Merger工具:替换失败

    我正在使用一个使用自己的 android theme 的库 因此在构建时收到以下错误 错误 55 9 任务 contacit processDebugManifest 执行失败 清单合并失败 AndroidManifest xml 中的属性
  • 如何使用有角度的材料创建卡片网格?

    我正在尝试使用 ng repeat 创建每行三张卡片的网格 我有一个普通的 javascript 对象数组附加到范围 下面的代码将为每张卡创建一个新行 div div
  • 如何使用Android opencv使图像的白色部分透明

    我无法链接超过 2 个网址 因此我将我的照片发布到此博客 请在这里查看我的问题 http blog naver com mail1001 220650041897 http blog naver com mail1001 220650041
  • 如何使用 Java 中的 Web 服务(例如 Axis2)发送复杂对象的数组或集合?

    我对 SOAP Web 服务还比较陌生 虽然我完成了一些较小的 Web 服务项目 但我偶然从来不需要返回 或用作参数 复杂 对象的数组或集合 当我尝试这样做时 根据我的 SOAP 绑定风格 我会得到不同的奇怪行为 当我使用RPC 文字 我可

随机推荐