-2
列出文件我在Android的初学者,我想创建一个简单的MP3播放器。但我有以下例外。我无法从Android设备
NullPointerException - 尝试获取空数组的长度。
使用adb外壳我验证了那个路径中的mp3文件存在。 这是我的代码
活动课
public class Display extends ListActivity {
Button stop;
private static final String PATH = new String("/sdcard/");
private List<String> songs = new ArrayList<String>();
private MediaPlayer mp = new MediaPlayer();
private ListView mainListView ;
String name;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listview);
stop = (Button) findViewById(R.id.stopbtn);
mainListView = getListView();
updatePlayList();
}
private void setButtonOnClickListeners(){
stop.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
mp.stop();
}
});}
@Override
protected void onListItemClick(ListView list, View view, int position, long id){
try{
mp.reset();
mp.setDataSource(PATH + songs.get(position));
mp.prepare();
mp.start();
}catch(IOException e){
Log.v("test", e.getMessage());
}}
private void updatePlayList() {
File home = new File(PATH);
for (File f : home.listFiles()) { // This line causes the exception
if (f.isFile())
name = f.getName();
if(name.contains(".MP3") || name.contains(".mp3")) {
ArrayAdapter<String> songList = new ArrayAdapter<String>(this, R.layout.simplerow, songs);
mainListView.setAdapter(songList);
}
}
}
}
我已经加入清单文件也读取权限。我试着用
Environment.getExternalStorageDirectory()
也。谁能帮我?
的可能的复制[什么是空指针异常,以及如何解决?(http://stackoverflow.com/questions/218384/what-is -a无效指针异常和如何-DO-I-FIX-IT) –
遵循本教程:http://www.androidhive.info/2012/03/android-building-audio-player-tutorial/ –