Android 读取文件时出现空指针异常

Android 读取文件时出现空指针异常,android,file,nullpointerexception,directory,Android,File,Nullpointerexception,Directory,我有两个活动:在第一个活动中,我将字符串“pathName”传递给第二个活动。我收到了额外的同意,我可以从这个路径名创建一个文件。当我试图从该文件调用.listFiles()时,问题就出现了 代码: 第一项活动 public void onItemClick(AdapterView<?> parent, View v, int position, long id) { String pathToSend = albumDirectory+albumL

我有两个活动:在第一个活动中,我将字符串“pathName”传递给第二个活动。我收到了额外的同意,我可以从这个路径名创建一个文件。当我试图从该文件调用.listFiles()时,问题就出现了

代码: 第一项活动

    public void onItemClick(AdapterView<?> parent, View v, int position, long id) {

            String pathToSend = albumDirectory+albumList.get(position);
            Intent i = new Intent(getBaseContext(),GalleryImageSlider.class);
            i.putExtra("pathName", pathToSend);
            startActivity(i);
        }
public void onItemClick(AdapterView父视图、视图v、整型位置、长id){
字符串pathToSend=albumDirectory+albumList.get(位置);
Intent i=新的Intent(getBaseContext(),GalleryImageSlider.class);
i、 putExtra(“路径名”,pathToSend);
星触觉(i);
}
第二项活动:

    List<File> imageList;

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_capture_gallery);

    Intent i = getIntent();
    filePath = i.getExtras().getString("pathName");
    albumFile = new File(filePath);

    Log.d("Fragment","File Path: " + albumFile.getAbsolutePath());
            //I can see this directory on my tablet, and I can see the files within. So the file
            path is correct

    try{
        imageList = Arrays.asList(albumFile.listFiles());

    }
    catch(NullPointerException e){
        Log.e("Error", "NPE: " + e);
    }
List图像列表;
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u capture\u gallery);
Intent i=getIntent();
filePath=i.getExtras().getString(“路径名”);
albumFile=新文件(文件路径);
Log.d(“片段”,“文件路径:”+albumFile.getAbsolutePath());
//我可以在我的平板电脑上看到这个目录,我可以看到其中的文件。所以文件
路径是正确的
试一试{
imageList=Arrays.asList(albumFile.listFiles());
}
捕获(NullPointerException e){
Log.e(“错误”,“NPE:+e”);
}
我知道,如果没有要读取的文件,.listFiles会返回null。但是有一些文件,我可以在我的平板电脑文件管理器中查看它们


有人看到解决方法了吗?谢谢。你可能会错过这样做的许可,
listFiles()
return null是指在某些情况下无法找到目录或您没有访问该目录的权限。请在AndroidManifest.xml中检查您的权限。是否添加了
READ\u EXTERNAL\u STORAGE
以获取权限?希望这会有所帮助。

可能是因为路径不是目录或您没有权限下面是一些在调用
listFiles()
之前应该验证的方法提示:

  • file.canRead()
    -返回一个bool,说明文件是否可读
  • file.isDirectory()
    -返回一个bool,说明文件是否为目录

  • 既然您说路径是正确的,那么第二个选项可能不是解决方案,但第一个选项可以。

    当您将设备连接到PC sd卡时,您将被删除,无法访问文件。

    您可以发布堆栈跟踪吗?最后以另一种方式引用了该文件。但我会将您标记为正确,因为我将访问一个添加这些错误检查方法。谢谢