Android 位图大小超过32位-用于从缓存还原状态视图

Android 位图大小超过32位-用于从缓存还原状态视图,android,bitmap,android-4.4-kitkat,Android,Bitmap,Android 4.4 Kitkat,对于KitKat,当系统还原“我的活动”的上一个状态时,应用程序抛出异常-位图大小超过32位 我的活动包含ScrollView和WebView以及大内容、背景上的大平铺图像和其他内容 在代码中查看还原状态时 包android.view View.java 12848 final long projectedBitmapSize = width * height * (opaque && !use32BitCache ? 2 : 4); 12849

对于KitKat,当系统还原“我的活动”的上一个状态时,应用程序抛出异常-
位图大小超过32位

我的活动包含
ScrollView
WebView
以及大内容、背景上的大平铺图像和其他内容

在代码中查看还原状态时

包android.view

View.java

12848            final long projectedBitmapSize = width * height * (opaque && !use32BitCache ? 2 : 4);
12849            final long drawingCacheSize =
12850                    ViewConfiguration.get(mContext).getScaledMaximumDrawingCacheSize();
12851            if (width <= 0 || height <= 0 || projectedBitmapSize > drawingCacheSize) {
12852                if (width > 0 && height > 0) {
12853                    Log.w(VIEW_LOG_TAG, "View too large to fit into drawing cache, needs "
12854                            + projectedBitmapSize + " bytes, only "
12855                            + drawingCacheSize + " available");
12856                }
12857                destroyDrawingCache();
12858                mCachingFailed = true;
12859                return;
12860            }
例如:

autoScale = true
attachInfo = {android.view.View$AttachInfo@830038767120}
height = 1174671
width = 768
drawingCacheBackgroundColor = 0
scalingRequired = false
opaque = false
use32BitCache = true
drawingCacheSize = 4096000
projectedBitmapSize = -686377984
clear = true
mUnscaledDrawingCache = null
mDrawingCache = null
如何修复它

autoScale = true
attachInfo = {android.view.View$AttachInfo@830038767120}
height = 1174671
width = 768
drawingCacheBackgroundColor = 0
scalingRequired = false
opaque = false
use32BitCache = true
drawingCacheSize = 4096000
projectedBitmapSize = -686377984
clear = true
mUnscaledDrawingCache = null
mDrawingCache = null