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

首頁 > 系統 > Android > 正文

Android 中讀取SD卡文件時拋出NullPointerException錯誤解決辦法

2019-12-12 02:49:02
字體:
來源:轉載
供稿:網友

Android 中讀取SD卡文件時拋出NullPointerException錯誤解決辦法

相關源碼:

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文件夾下的文件信息時在foreach時拋出NullPointerException,最后發現是沒有添加讀取SD卡的權限

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

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

官方推薦:

Environment.getExternalStorageDirectory.getPath();

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

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 尤溪县| 连江县| 祥云县| 临江市| 铅山县| 富川| 门头沟区| 冕宁县| 湾仔区| 新营市| 怀来县| 巍山| 蒲江县| 儋州市| 鹤峰县| 平阴县| 察隅县| 大冶市| 梅河口市| 吐鲁番市| 封开县| 西乌珠穆沁旗| 罗平县| 威信县| 密云县| 扬中市| 东方市| 那坡县| 昌平区| 个旧市| 织金县| 错那县| 台北市| 绵阳市| 章丘市| 冕宁县| 临沧市| 仁寿县| 高唐县| 高唐县| 沂南县|