首页 > 解决方案 > getExternalStorageState.listFiles() 返回 null

问题描述

首先,我认为这个问题可能会经历数千次并且很久以前就已经解决了。但事实并非如此,我将以下帖子123和其他帖子红了,但没有任何帮助。

这是我的情况。我正在开发允许用户附加文件的聊天应用程序,为了实现这一点,我正在开发文件资源管理器,但我一直在运行NullPointerException. 这是我的代码。

String extState = Environment.getExternalStorageState();

if(extState.equals(Environment.MEDIA_MOUNTED)) {

    File sd = Environment.getExternalStorageDirectory();

    File[] sdDirList = sd.listFiles();
}

在这里,我正在检查是否安装了外部存储并返回 true。但是它一直在抛出NullPointerException,因为sd.listFiles()return null

在清单中我有以下权限

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

我正在测试 android 7.0

标签: android

解决方案


您是否请求读取外部存储的权限?

ActivityCompat.requestPermissions(this, new String[] {Manifest.permission.READ_EXTERNAL_STORAGE}, 1);


推荐阅读