gpt4 book ai didi

android - 无法在 Android 4.2 的 appwidget 中将位图写入 parcel blob

转载 作者:太空狗 更新时间:2023-10-29 13:32:48 25 4
gpt4 key购买 nike

我的应用在尝试显示位图时出现以下异常:

java.lang.RuntimeException: Could not write bitmap to parcel blob.
at android.graphics.Bitmap.nativeWriteToParcel(Native Method)
at android.graphics.Bitmap.writeToParcel(Bitmap.java:1296)
at android.widget.RemoteViews$BitmapCache.writeBitmapsToParcel(RemoteViews.java:839)
at android.widget.RemoteViews.writeToParcel(RemoteViews.java:2347)
at com.android.internal.appwidget.IAppWidgetService$Stub$Proxy.updateAppWidgetIds(IAppWidgetService.java:521)
at android.appwidget.AppWidgetManager.updateAppWidget(AppWidgetManager.java:364)
at android.appwidget.AppWidgetManager.updateAppWidget(AppWidgetManager.java:431)

您知道为什么会出现此错误吗?它仅存在于 4.2。我不知道为什么以及何时发生,我只在报告中得到这些异常。

谢谢,塔玛斯

最佳答案

我想我找到了答案。如果我检查 jni/android/graphics/Bitmap.cpp 那么我可以看到:

size_t size = bitmap->getSize();

android::Parcel::WritableBlob blob;
android::status_t status = p->writeBlob(size, &blob);
if (status) {
doThrowRE(env, "Could not write bitmap to parcel blob.");
return false;
}

看来问题出在位图大小而不是位图本身。

如果无法分配内存,writeBlob 函数可以返回 NO_MEMORY 状态。

所以我想如果用户设置了太大的位图,那么它可能会以这种方式失败。

关于android - 无法在 Android 4.2 的 appwidget 中将位图写入 parcel blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13701074/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com