我正在使用内置于Web View的Android开发浏览器。其中我面临的一个问题是,当我访问http://crashmybrowser.com测试浏览器上的选项卡崩溃时,我的整个浏览器应用程序都会崩溃。但是,当在chrome或Opera上进行相同的测试时,这些浏览器会在崩溃中幸存下来,并且只有特定的选项卡崩溃是由于访问上述网站而预期的结果。有人能帮助理解我如何在使用Webview的浏览器上处理此崩溃吗?
注意:我已经测试过,其他使用Android内置webview的浏览器在访问http://crashmybrowser.com网站时也会崩溃。
下面是崩溃日志:
E/chromium(24703): ### WebView Version 44.0.2403.90 (code 240309050)
--------- beginning of crash
F/libc (24703): Fatal signal 11 (SIGSEGV), code 2, fault addr 0x7f928c4fe0 in tid 24744 (Thread-461)
I/DEBUG ( 1078): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG ( 1078): Build fingerprint: 'google/volantis/flounder:5.0.2/LRX22L/1816899:user/release-keys'
I/DEBUG ( 1078): Revision: '0'
I/DEBUG ( 1078): ABI: 'arm64'
I/DEBUG ( 1078): pid: 24703, tid: 24744, name: Thread-461 >>> net.browse.Browser <<<
I/DEBUG ( 1078): signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x7f928c4fe0
I/DEBUG ( 1078): x0 000000104530c660 x1 0000000000000003 x2 0000000000000000 x3 0000000000001be4
I/DEBUG ( 1078): x4 00000010e9e10140 x5 0000000000000000 x6 0000000000000000 x7 0000007fab948000
I/DEBUG ( 1078): x8 0000007f929c0100 x9 0000000000000010 x10 0000007fab948e98 x11 0000000000000001
I/DEBUG ( 1078): x12 0000000000000001 x13 0000000000000033 x14 00000055ab3a9000 x15 003b9aca00000000
I/DEBUG ( 1078): x16 0000007f98a4c2d8 x17 0000007fab8c4f64 x18 0000000000000000 x19 000000104530c660
I/DEBUG ( 1078): x20 000000104530c660 x21 0000000000000003 x22 0000000000000000 x23 0000000000000000
I/DEBUG ( 1078): x24 0000007f929c00e8 x25 00000010452041c4 x26 0000000000000001 x27 0000007f98605444
I/DEBUG ( 1078): x28 00000000fffffffe x29 0000007f928c5000 x30 0000007f977073cc
I/DEBUG ( 1078): sp 0000007f928c5000 pc 0000007f97701360 pstate 00000000a0000000
I/DEBUG ( 1078):
I/DEBUG ( 1078): backtrace:
I/DEBUG ( 1078): #00 pc 0000000001a97360 /data/app/com.google.android.webview-2/lib/arm64/libwebviewchromium.so
W/ActivityManager( 1323): Force finishing activity net.browse.Browser/.ui.activities.BrowseContainerActivity
I/DEBUG ( 1078):
I/DEBUG ( 1078): Tombstone written to: /data/tombstones/tombstone_02
E/JavaBinder( 1323): !!! FAILED BINDER TRANSACTION !!!
W/ActivityManager( 1323): Exception thrown during pause
W/ActivityManager( 1323): android.os.TransactionTooLargeException
W/ActivityManager( 1323): at android.os.BinderProxy.transactNative(Native Method)
W/ActivityManager( 1323): at android.os.BinderProxy.transact(Binder.java:496)
W/ActivityManager( 1323): at android.app.ApplicationThreadProxy.schedulePauseActivity(ApplicationThreadNative.java:701)
W/ActivityManager( 1323): at com.android.server.am.ActivityStack.startPausingLocked(ActivityStack.java:852)
W/ActivityManager( 1323): at com.android.server.am.ActivityStack.finishActivityLocked(ActivityStack.java:2754)
W/ActivityManager( 1323): at com.android.server.am.ActivityStack.finishTopRunningActivityLocked(ActivityStack.java:2611)
W/ActivityManager( 1323): at com.android.server.am.ActivityStackSupervisor.finishTopRunningActivityLocked(ActivityStackSupervisor.java:2453)
W/ActivityManager( 1323): at com.android.server.am.ActivityManagerService.handleAppCrashLocked(ActivityManagerService.java:11511)
W/ActivityManager( 1323): at com.android.server.am.ActivityManagerService.makeAppCrashingLocked(ActivityManagerService.java:11408)
W/ActivityManager( 1323): at com.android.server.am.ActivityManagerService.crashApplication(ActivityManagerService.java:12087)
W/ActivityManager( 1323): at com.android.server.am.ActivityManagerService.handleApplicationCrashInner(ActivityManagerService.java:11603)
W/ActivityManager( 1323): at com.android.server.am.NativeCrashListener$NativeCrashReporter.run(NativeCrashListener.java:86)
E/lowmemorykiller( 146): Error writing /proc/24703/oom_score_adj; errno=22
I/OpenGLRenderer( 1323): Initialized EGL, version 1.4
I/WindowState( 1323): WIN DEATH: Window{af1d060 u0 net.browse.Browser/net.browse.Browser.ui.activities.BrowseContainerActivity}
W/LocationOracleImpl( 1863): Best location was null
I/Zygote ( 1084): Process 24703 exited due to signal (11)
I/ActivityManager( 1323): Process net.browse.Browser (pid 24703) has died
与Chrome或Opera不同,Android WebView在单个进程中运行,并与您的活动共享该进程。如果一个网页开始过度使用内存(正如您提到的页面),那么在应用程序方面,您无法阻止崩溃。
您的应用程序中可以有多个进程(请参阅http://developer.android.com/guide/components/processes-and-threads.html#Processes),并在一个单独的进程中运行包含WebView的活动。然后WebView的崩溃不会影响您的主端。但是请注意,如果活动将托管多个WebView(例如作为浏览器的选项卡),其中一个中的崩溃将关闭整个活动和它托管的所有其他WebView。因此,它仍然与Chrome不同,其中选项卡被分组到进程中,一个选项卡中的崩溃只会关闭来自同一组的选项卡,而不是您打开的所有选项卡。
您可以尝试从Chromium源中派生WebView,而不是将其用于浏览器,请参阅https://www.chromium.org/developers/how-tos/android-build-instructions
这里是Android开发者新手。我在MainActivity中使用recyclerview,应用程序不断崩溃。 任何帮助都将受到赞赏! 编辑:对不起,我是新来的。我已经附加了Logcat。和其他xml文件。谢谢 这是我的代码: 列出你的布局。xml: activity_main.xml: } ProductAdapter。java类: } Logcat: 致命异常:主进程:e.wolverine2
问题内容: 我正在开发一个Android 3.1应用程序,该应用程序使用USB主机模式通过USB上的MIDI与我的键盘(Korg M3)进行通信。这是在装有Android 4.0.3的Xoom上运行的。我可以通过USB接收MIDI消息而没有任何问题,但是将音符数据发送回键盘的效果是好坏参半,延迟半秒钟后便会频繁崩溃。 这是我在点击操作栏上的按钮发送注释时不断遇到的错误: E / dalvikvm(
问题内容: 我已经在我的应用中实现了GCM通知。我现在尝试在用户注销时注销该应用程序。我正在使用以下代码。执行此代码时,它将导致应用程序崩溃,并显示以下logcat: 这是代码: 问题答案: 将支持库更新为25.0.0后,我遇到了同样的问题。对我来说,更新下面的库之后,在应用程序gradle文件中,问题消失了。
我试图从我的框架中获得轮廓,这就是我所做的: .................................................... 程序在处崩溃,我收到以下错误消息: OpenCV错误:不支持的格式或格式组合([开始]FindContour只支持8uC1和32sC1图像)在未知的功能,文件......\src\openc v\模块\imgproc\src\contours.cp
问题内容: 我试图运行While循环,以不断地做某事。目前,它所做的只是使我的程序崩溃。 这是我的代码: 它将循环该语句,但是实际的画布拒绝打开。 有没有可以与Tkinter一起使用的可行无限循环? 附加信息 当我删除该语句时,画布会再次出现。 问题答案: 除非它可以执行自己的无限循环,否则Tkinter会挂起。通常,您无法与Tkinter并行运行自己的无限循环。但是,有一些替代策略: 是Tkin
当我初始化的元素应用程序崩溃,如果我不初始化任何元素的应用程序显示的布局只是罚款和做一些基本的功能,我已经添加了使用在XML的onClick属性的方法 我需要从EditText元素中提取数据来进行计算。 java代码: 坠机记录: 致命例外:主进程:com.ajaydubey.fifamobilebulktradeprofitcounter,PID:17627java.lang.运行时异常:无法启