Android can';无法从sd卡获取文件名

Android can';无法从sd卡获取文件名,android,file,nullpointerexception,Android,File,Nullpointerexception,我有一个记录音频的应用程序。我正在尝试获取存储在sd卡上的文件名,以便将它们放在列表视图中。我知道在sd卡的根目录下保存文件可能不是最佳做法,但我有:)(与dcim、声音等级别相同)。我得到一个关于listFiles()方法的nullpointerexception。这是我的密码。对这个例外有什么想法吗 File sdCardRoot = Environment.getExternalStorageDirectory(); Log.i("root on sd =", ""+ sdCard

我有一个记录音频的应用程序。我正在尝试获取存储在sd卡上的文件名,以便将它们放在列表视图中。我知道在sd卡的根目录下保存文件可能不是最佳做法,但我有:)(与dcim、声音等级别相同)。我得到一个关于listFiles()方法的nullpointerexception。这是我的密码。对这个例外有什么想法吗

File sdCardRoot = Environment.getExternalStorageDirectory();
    Log.i("root on sd =", ""+ sdCardRoot.getPath());

    for (File f : sdCardRoot.listFiles()) {

        if (f.isFile()){
            String name = f.getName();
            Log.i("arr names******", ""+arr.get(0));
            arr.add(name);

         }else
             {
             Log.i("file", " no file");
             }

    Log.i("arr******", ""+arr.size());

    }


你会得到一个NPE,可能在这里:

Log.i("arr******", ""+arr.size());

您是否先初始化了该列表?

我正要说同样的话。在您将文件名添加到列表中之后,是否确实要登录?IE:arr.add(名称);Log.i(“arr names*******,”“+arr.get(0));此外,get(0)将仅显示第一个文件,这需要递增。刚刚更改为“+”名称
Log.i("arr******", ""+arr.size());