网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

在Android应用中读取SD卡文件时程序NullPointerException报错如何解决

本篇文章为大家展示了在Android应用中读取SD卡文件时程序NullPointerException报错如何解决,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

坚守“ 做人真诚 · 做事靠谱 · 口碑至上 · 高效敬业 ”的价值观,专业网站建设服务10余年为成都成都社区文化墙小微创业公司专业提供企业网站设计营销网站建设商城网站建设手机网站建设小程序网站建设网站改版,从内容策划、视觉设计、底层架构、网页布局、功能开发迭代于一体的高端网站建设服务。

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 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();

    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卡的权限

获取SD卡路径:”/mnt/sdcard/” “/storage/sdcard/”

官方推荐:

Environment.getExternalStorageDirectory.getPath();

该方法获取的路径最后没有'/'

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

上述内容就是在Android应用中读取SD卡文件时程序NullPointerException报错如何解决,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


分享题目:在Android应用中读取SD卡文件时程序NullPointerException报错如何解决
网页链接:http://bjjierui.cn/article/ggihid.html

其他资讯