我的Android 4.0.4应用程序包含一个WebView,用户可以通过该视图查看资产目录中本地存储的多个页面.在页面中循环时,最终会触发以下错误并且应用程序崩溃:
> JNI ERROR(app bug):本地参考表溢出(max = 512)
>添加到JNI本地ref表失败(有512个条目)
> VM中止
>致命信号11(SIGSEGV)位于0xdeadd00dd(代码= 1)
这个问题似乎与这里报道的问题有关:
> WebView memory leak in android app
> Android WebView Memory Leak when using Assets
> Viewpager Webview memory issue
我使用了以下链接中给出的Memory Analyzer Tool插件说明来检查详细信息:
http://therockncoder.blogspot.ca/2012/09/fixing-android-memory-leak.html
结果显示如下(无法发布屏幕截图,因此文本必须执行):
MAT摘录
Class Name | Shallow Heap | Retained Heap | Percentage
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| | |
java.lang.Thread @ 0x40daa320 Thread-39775 Thread | 80 | 15,310,552 | 76.74%
|- byte[32768] @ 0x40d5a8d0 Meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />. <Meta name="viewport" content="width=360,height=480">.