为什么Android的MediaStore.Audio.Album.ALBUM_ID导致IllegalStateException错误?

时间:2015-12-08 08:19:57

标签: java android media

我试图从 MediaStore 中获取相册信息。我可以非常轻松地获取名称和艺术家但由于某种原因,当我尝试访问时, ALBUM_ID 列会给我一个错误。

$( document ).ready( function(){
    $( "#test123" ).change(function () {
        console.log("change");
    });
});

function testOnchange(){
    console.log("onchange")
}

我似乎无法找到解决方案。任何帮助表示赞赏!下面是我必须获取相册信息并将其添加到 ArrayList 的方法。

Caused by: java.lang.IllegalStateException: Couldn't read row 0, col -1 from CursorWindow.  Make sure the Cursor is initialized correctly before accessing data from it.
at android.database.CursorWindow.nativeGetString(Native Method)
at android.database.CursorWindow.getString(CursorWindow.java:450)
at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:51    )
at android.database.CursorWrapper.getString(CursorWrapper.java:114)
at sage.musicplayer.MainActivity.getAlbumList(MainActivity.java:1540)
at sage.musicplayer.MainActivity.onCreate(MainActivity.java:238)

1 个答案:

答案 0 :(得分:2)

我也遇到过这个问题。您可以通过更改

轻松解决此问题

int albumID = albumCursor.getColumnIndex(MediaStore.Audio.Albums.ALBUM_ID);

int albumID = albumCursor.getColumnIndex(MediaStore.Audio.Albums._ID);

即使您想要相册的_ID,也需要使用AlbumID。我不知道为什么MediaStore开发人员使用_ID代替ALBUM_ID等等。