国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Android > 正文

Android 中讀取SD卡文件時(shí)拋出NullPointerException錯(cuò)誤解決辦法

2019-10-23 18:27:58
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

Android 中讀取SD卡文件時(shí)拋出NullPointerException錯(cuò)誤解決辦法

相關(guān)源碼:

package com.example.musicplayer;import java.io.File;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.os.Environment;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity {  private ListView listView;  private final String path = "/storage/sdcard/mp3/";  private List<String> musicList;  private ViewHolder viewHolder;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    listView = (ListView) findViewById(R.id.lv_music);    Toast.makeText(getApplicationContext(), path, Toast.LENGTH_SHORT).show();    initMusic();  }  private void initMusic() {    File file = new File(path);    File[] files = file.listFiles();    musicList = new ArrayList<String>();    for (File f : files) {      if (f.getName().endsWith(".mp3")) {        musicList.add(f.getAbsolutePath());      }    }    listView.setAdapter(new MusicListAdapter());  }  private class MusicListAdapter extends BaseAdapter{    @Override    public int getCount() {      return musicList.size();    }    @Override    public View getView(int position, View convertView, ViewGroup parent) {      View view = null;      if(convertView == null){        view = View.inflate(getApplicationContext(), R.layout.activity_music_item, null);        viewHolder = new ViewHolder();        viewHolder.musicName = (TextView) view.findViewById(R.id.tv_music_name);      } else {        view = convertView;      }      String path = musicList.get(position);      viewHolder.musicName.setText(path.substring(path.lastIndexOf("/") + 1));      return view;    }    @Override    public Object getItem(int position) {      // TODO Auto-generated method stub      return null;    }    @Override    public long getItemId(int position) {      // TODO Auto-generated method stub      return 0;    }  }}

獲取SD卡中MP3文件夾下的文件信息時(shí)在foreach時(shí)拋出NullPointerException,最后發(fā)現(xiàn)是沒有添加讀取SD卡的權(quán)限

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

獲取SD卡路徑:”/mnt/sdcard/” “/storage/sdcard/”

官方推薦:

Environment.getExternalStorageDirectory.getPath();

該方法獲取的路徑最后沒有'/'

"/mnt/sdcard"  "/storage/sdcard"

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到Android開發(fā)頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 鲜城| 罗平县| 荔浦县| 水富县| 台东市| 同仁县| 东宁县| 昌图县| 巴东县| 绥芬河市| 新营市| 翁源县| 苗栗县| 蒙城县| 肇庆市| 宁乡县| 景宁| 剑河县| 红原县| 英德市| 南开区| 文昌市| 尤溪县| 长治县| 平武县| 鄂伦春自治旗| 博罗县| 乾安县| 四会市| 徐闻县| 株洲县| 常德市| 临邑县| 客服| 基隆市| 甘孜县| 舒城县| 茌平县| 潞西市| 齐齐哈尔市| 文山县|