gpt4 book ai didi

java - MediaMetadata.getString java.lang.RuntimeException : Could not read bitmap from parcel blob

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:43:19 25 4
gpt4 key购买 nike

调用 MediaMetadata.getString,在报告中有以下崩溃,但并不总是重现:

 java.lang.RuntimeException: Could not read bitmap from parcel blob.
at android.graphics.Bitmap.nativeCreateFromParcel(Native Method)
at android.graphics.Bitmap.access$000(Bitmap.java:32)
at android.graphics.Bitmap$1.createFromParcel(Bitmap.java:1477)
at android.graphics.Bitmap$1.createFromParcel(Bitmap.java:1469)
at android.os.Parcel.readParcelable(Parcel.java:2246)
at android.os.Parcel.readValue(Parcel.java:2146)
at android.os.Parcel.readArrayMapInternal(Parcel.java:2479)
at android.os.BaseBundle.unparcel(BaseBundle.java:221)
at android.os.BaseBundle.getCharSequence(BaseBundle.java:953)
at android.os.Bundle.getCharSequence(Bundle.java:716)
at android.media.MediaMetadata.getText(MediaMetadata.java:334)
at android.media.MediaMetadata.getString(MediaMetadata.java:347)

代码如下,MediaMetadata元数据来自api MediaSessionManager.OnActiveSessionsChangedListener的controller,应该由第三方音乐app创建。

    meta.getString(MediaMetadata.METADATA_KEY_ALBUM_ARTIST);
meta.getString(MediaMetadata.METADATA_KEY_ARTIST);
meta.getString(MediaMetadata.METADATA_KEY_AUTHOR);
meta.getBitmap(MediaMetadata.METADATA_KEY_ART);
meta.getBitmap(MediaMetadata.METADATA_KEY_ALBUM_ART);
meta.getString(MediaMetadata.METADATA_KEY_ALBUM);
meta.getString(MediaMetadata.METADATA_KEY_TITLE);

为什么getString会解析位图?发生这种情况时是否可能内存不足?

最佳答案

我认为当您使用 .putBitmap(MediaMetadataCompat.METADATA_KEY_DISPLAY_ICON, icon) 将大位图放入 MediaMetaData 对象时会发生这种情况。此位图用在 MediaDescription 上,因此在序列化后应该非常小。每次您对元数据调用 getString 时,它实际上都会反序列化。

因此,解决此问题的方法是仅对 METADATA_KEY_DISPLAY_ICON 使用小位图,或者尽可能不使用它。

关于java - MediaMetadata.getString java.lang.RuntimeException : Could not read bitmap from parcel blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31911702/

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