我已经在一个 Android 应用程序上苦苦挣扎了 3 天,该应用程序使用 awebview来加载我的包含数千张图像的网站。应用程序启动良好,但在滚动数百个图像后冻结webview(它不会强制关闭)logcat(在pastebin上检查它)显示
E/Surface dequeueBuffer failed (Unknown error 2147483646)
Run Code Online (Sandbox Code Playgroud)
我尝试过的:
clearCache(true);setAppCacheEnabled(false);webView.setLayerType()为“无”、“软件”和“硬件”"android:largeHeap="true"和
android:hardwareAccelerated="true"。finish();webViewPlaceholder.removeView(myWebView);
myWebView.removeAllViews();
myWebView.destroy();
Run Code Online (Sandbox Code Playgroud)
看来android将其保留webview在内存中并且清理缓存没有任何效果。
当我关闭应用程序并重新打开它时,错误立即出现,因此似乎即使关闭应用程序也不会释放它使用的内存。
我已经在 SO 上阅读了大量有关webview问题的答案,但我仍然无法解决问题,非常感谢任何帮助。
小智 0
对于 KitKat 4.4.3 或更高版本,将硬件加速设置为 false:
webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4512 次 |
| 最近记录: |