2016-02-02 116 views
-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()

也。谁能帮我?

+0

的可能的复制[什么是空指针异常,以及如何解决?(http://stackoverflow.com/questions/218384/what-is -a无效指针异常和如何-DO-I-FIX-IT) –

+0

遵循本教程:http://www.androidhive.info/2012/03/android-building-audio-player-tutorial/ –

回答

0

发出定额。我们应该在正确的地方给用户许可。这应该是明显的一个孩子和应用的对等