Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MediaMetadata.getString java.lang.RuntimeException:无法从包blob读取位图_Java_Android_Bitmap_Android Music Player - Fatal编程技术网

MediaMetadata.getString java.lang.RuntimeException:无法从包blob读取位图

MediaMetadata.getString java.lang.RuntimeException:无法从包blob读取位图,java,android,bitmap,android-music-player,Java,Android,Bitmap,Android Music Player,调用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

调用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的控制器,应由第三方音乐应用程序创建

    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会解析位图?发生这种情况时,内存是否可能已用完?

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


因此,这个问题的解决方案是只对
元数据\u KEY\u DISPLAY\u ICON
使用小位图,或者尽可能不使用它。

你在读什么字段/你如何构建
MediaMetadata
?添加细节@ianhanniballake有什么新闻吗?@SarahMa你能修复它吗?我也有同样的问题。