我正在开发一款可播放MP3文件的应用。我想将原始文件夹中的mp3文件转换为歌曲对象的ArrayList,使用mp3文件的名称作为标题。这是我的代码。我从这个问题的answer中得到了它,但它似乎对我不起作用。
public void getSongList() {
try {
Log.d("Test", "reached");
Field[] fields = R.raw.class.getDeclaredFields();
Log.d("Test", "reached2");
for (Field f : fields) {
allSongs.addSong(new Song(0, f.getName(), ""));
}
Log.d("Test", "reached3");
} catch (Exception e) {
Log.d("Test", "reached4");
Log.d("Test", allSongs.getSongs().size() + "");
Log.d("Test", e.toString());
return;
}
}
以下是日志:
07-03 15:50:52.497 17106-17106/poc.cevt.hmi.com.musicplayerapp D/Test: reached
07-03 15:50:52.497 17106-17106/poc.cevt.hmi.com.musicplayerapp D/Test: reached2
07-03 15:50:52.498 17106-17106/poc.cevt.hmi.com.musicplayerapp D/Test: reached4
07-03 15:50:52.498 17106-17106/poc.cevt.hmi.com.musicplayerapp D/Test: 0
07-03 15:50:52.498 17106-17106/poc.cevt.hmi.com.musicplayerapp D/Test: java.lang.NullPointerException: Attempt to invoke virtual method 'void poc.cevt.hmi.com.musicplayerapp.AllSongs.addSong(poc.cevt.hmi.com.musicplayerapp.Song)' on a null object reference
我的原始文件夹中有一个mp3文件。歌曲的第一和第三个参数分别是ID和艺术家,我只是想让这个头衔现在起作用。我也欢迎任何替代/更好的解决方案。
答案 0 :(得分:0)
allSongs
为null
,因此您拨打NullPointerException
时收到addSong()
。