我是android的初学者,我想创建一个简单的MP3播放器。但是我得到了以下例外。
NullPointerException - 尝试获取null数组的长度。
使用adb shell我在该路径中验证了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()
也。任何人都可以帮助我吗?
答案 0 :(得分:0)
问题已修复。我们应该在正确的地方给予使用许可。它应该是清单的孩子和应用程序的同伴