android webview 内存溢出,android
我编写了一个应用程序,它在Webview中显示html页面,这些页面在ViewPager中管理。 一切正常,但是当我从一个页面滑动到另一个页面时,我有一些ANR。 ANR数据转储显示主线程已通过ThreadedRenderer.nSyncAndDrawFrame()调用,该方法调用本机方法,该方法显然与呈现器线程通信,并等待该线程完成绘制视图。 由于这两个都在执行本机代码,因此很难弄清楚正在发生什么,但看起来Renderer线程从未表示主线程要恢复,因此导致ANR。 在ANR报告之前,logcat中没有任何内容表明存在任何问题。
有没有人有关于如何排除故障的建议? 我假设对ThreadedRenderer.nSyncAndDrawFrame()的调用与Webview相关联,但我实际上没有任何东西可以确认。
问题是不可重复的,因为如果我重新启动应用程序并导航到ANR发生时显示的同一页面,则不会再次发生。 设备是运行Android 5.1的Nexus 7。
主渲染器线程和渲染器线程的ANR堆栈跟踪:
"main" prio=5 tid=1 Native
| group="main" sCount=1 dsCount=0 obj=0x73547000 self=0xb4827800
| sysTid=1248 nice=-6 cgrp=default sched=0/0 handle=0xb6fd6bec
| state=S schedstat=( 0 0 0 ) utm=6035 stm=1406 core=0 HZ=100
| stack=0xbe5a6000-0xbe5a8000 stackSize=8MB
| held mutexes=
kernel: (couldn't read /proc/self/task/1248/stack)
native: #00 pc 000133b8 /system/lib/libc.so (syscall+28)
native: #01 pc 00016a81 /system/lib/libc.so (__pthread_cond_timedwait_relative(pthread_cond_t*, pthread_mutex_t*, timespec const*)+56)
native: #02 pc 0003c73b /system/lib/libhwui.so (???)
native: #03 pc 0003c771 /system/lib/libhwui.so (???)
native: #04 pc 0083fd83 /data/dalvik-cache/arm/system@framework@boot.oat (Java_android_view_ThreadedRenderer_nSyncAndDrawFrame__JJJF+134)
at android.view.ThreadedRenderer.nSyncAndDrawFrame(Native method)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:340)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:2530)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2352)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1982)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1061)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5885)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
at android.view.Choreographer.doCallbacks(Choreographer.java:580)
at android.view.Choreographer.doFrame(Choreographer.java:550)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke!(Native method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
"RenderThread" prio=5 tid=26 Native
| group="main" sCount=1 dsCount=0 obj=0x12c07820 self=0xa1c30800
| sysTid=1303 nice=-4 cgrp=default sched=0/0 handle=0xa1c44c00
| state=S schedstat=( 0 0 0 ) utm=8314 stm=1817 core=0 HZ=100
| stack=0xa0cc2000-0xa0cc4000 stackSize=1012KB
| held mutexes=
kernel: (couldn't read /proc/self/task/1303/stack)
native: #00 pc 000133b8 /system/lib/libc.so (syscall+28)
native: #01 pc 0001741b /system/lib/libc.so (__futex_wait_ex+42)
native: #02 pc 00017761 /system/lib/libc.so (pthread_mutex_lock+230)
native: #03 pc 0001d767 /system/vendor/lib/libgsl.so (os_mutex_lock+6)
native: #04 pc 0001ea88 /system/vendor/lib/egl/libEGL_adreno.so (egliDoDestroyEGLImage+180)
native: #05 pc 0008698d /system/vendor/lib/egl/libGLESv2_adreno.so (rb_image_try_release+32)
native: #06 pc 00086acf /system/vendor/lib/egl/libGLESv2_adreno.so (rb_destroy_resource_updates_pure+136)
native: #07 pc 00085491 /system/vendor/lib/egl/libGLESv2_adreno.so (rb_perform_resolve+276)
native: #08 pc 00085761 /system/vendor/lib/egl/libGLESv2_adreno.so (rb_resolve+464)
native: #09 pc 0008a891 /system/vendor/lib/egl/libGLESv2_adreno.so (rb_surface_swap+228)
native: #10 pc 0006af89 /system/vendor/lib/egl/libGLESv2_adreno.so (gl2_surface_swap+76)
native: #11 pc 0005d12b /system/vendor/lib/egl/libGLESv2_adreno.so (oglSwapBuffer+194)
native: #12 pc 00013ddc /system/vendor/lib/egl/libEGL_adreno.so (qeglDrvAPI_eglSwapBuffers+1776)
native: #13 pc 00007b60 /system/vendor/lib/egl/libEGL_adreno.so (eglSwapBuffers+16)
native: #14 pc 0001237f /system/lib/libEGL.so (eglSwapBuffers+290)
native: #15 pc 0003d291 /system/lib/libhwui.so (???)
native: #16 pc 0003bd05 /system/lib/libhwui.so (???)
native: #17 pc 0003beb5 /system/lib/libhwui.so (???)
native: #18 pc 0003caed /system/lib/libhwui.so (???)
native: #19 pc 0003e743 /system/lib/libhwui.so (android::uirenderer::renderthread::RenderThread::threadLoop()+66)
native: #20 pc 000104d5 /system/lib/libutils.so (android::Thread::_threadLoop(void*)+112)
native: #21 pc 0005f839 /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+72)
native: #22 pc 00010045 /system/lib/libutils.so (???)
native: #23 pc 00016baf /system/lib/libc.so (__pthread_start(void*)+30)
native: #24 pc 00014af3 /system/lib/libc.so (__start_thread+6)
android webview 内存溢出,android相关推荐
- android webview 内存溢出,Android 内存溢出和内存泄漏的问题
Android 内存溢出和内存泄漏的问题 在面试中,经常有面试官会问"你知道什么是内存溢出?什么是内存泄漏?怎么避免?"通过这篇文章,你可以回答出来了. 内存溢出(OOM)是指程序 ...
- android 避内存溢出,Android避免内存溢出(Out of Memory)方法总结
Android避免内存溢出(Out of Memory)方法总 结 避免内存溢出的方法,主要是对以下三个方面对程序进行优化武汉Android培训 内存引用 在处理内存引用之前,我们先来复习下什么是强引 ...
- android webview内存泄漏,Android由webview引起的内存泄漏
业务场景:MainActivity中有4个tab,分别为 webview加载斗鱼主页,视频播放,webview加载五星体育,地图等四个模块.在加载web的时候发现内存泄露. 首先不能直接在xml写we ...
- Xamarin Android提示内存溢出错误
Xamarin Android提示内存溢出错误 错误信息:java.lang.OutOfMemoryError, Consider increasing the value of $(JavaMaxi ...
- 彻底解决Android 拍照 内存溢出 Out of Memory的问题
内存溢出相信做过编程的人都知道一二,这里说Android 内存溢出的问题:.问题描述:Android下的相机在独自使用时,拍照没有问题,通过我们的代码调用时,也正常,但是更换了不同厂商的平板,ROM由 ...
- 【android开发】Android防止内存溢出浅析
近期项目做得差点儿相同了,測试出现了一些问题,当中一个就是内存溢出问题,在三星手机上測试最easy出现内存溢出,在其它手机上,比方华为就没有发生,也是比較郁闷.这个问题在之前的公司,做项目时也遇到过, ...
- Android之内存溢出(Out Of Memory)的总结
图片越来越多,内存溢出已经成了不得不注意的问题了. 错误日志:11-03 12:36:54.812: ERROR/AndroidRuntime(5084): Caused by: java.lang. ...
- android防止内存溢出浅析
Android的虚拟机是基于寄存器的Dalvik,它的最大堆大小一般是16M.但是Android采用的是Java语言编写,所以在很大程度上,Android的内存机制等同于Java的内存机制,在刚开始开 ...
- Android避免内存溢出(Out of Memory)方法总结
避免内存溢出的方法,主要是对以下三个方面对程序进行优化 内存引用 在处理内存引用之前,我们先来复习下什么是强引用.软引用.弱引用.虚引用 强引用:强引用是使用最普遍的引用.如果一个对象具有强引用,那垃 ...
最新文章
- 关于MySQL redo log,挖些坑,慢慢填
- 中getname_Spring IOC中的灵魂伴侣:BeanFactory ApplicationContext
- [FAQ]VC读取数据源列表和驱动程序列表
- redis 保存 array list 区别_为什么Redis的RDB备份不用多线程实现CopyOnWrite?
- aws集群重启_在AWS中设置Cassandra集群
- tomcat 设置虚拟路径的4种方法
- git安装-centos版
- 信息化、数字化和数字化转型的本质是什么?
- Window setTimeout() 方法
- 汇编学习从入门到精通
- matlab获取ipv4地址,【MATLAB】从 IP camera 撷取影像
- 推荐8个堪称神器的网站!
- 群环域,理想商环,原根复习
- kali内置超好用的代理工具proxychains
- To run in silent mode, OPatch requires a response file for Oracle Configuration Manager (OCM).
- uwp版的音乐播放器练手
- IPU到底是个什么鬼?
- 大智慧2 分笔数据提取工具
- 人工神经网络ANN建模基础须知
- LFSR线性反馈移位寄存器循环码编码原理