代码之家  ›  专栏  ›  技术社区  ›  Abdurakhmon

getexternalstoragestate.listfiles()返回空值

  •  -1
  • Abdurakhmon  · 技术社区  · 6 年前

    首先,我认为这个问题可能经历了数千次,并且早已解决了。但事实并非如此,我在下面的帖子上涂了红色 1 , 2 , 3 还有其他人,但没有人帮忙。

    这是我的案子。 我正在开发一个聊天应用程序,它允许用户附加文件,为了实现这一点,我正在开发文件资源管理器,但我一直遇到 NullPointerException . 这是我的密码。

    String extState = Environment.getExternalStorageState();
    
    if(extState.equals(Environment.MEDIA_MOUNTED)) {
    
        File sd = Environment.getExternalStorageDirectory();
    
        File[] sdDirList = sd.listFiles();
    }
    

    在这里,我检查是否已装入外部存储器,并且它返回true。不管它怎么扔 空指针异常 因为 sd.listFiles() 返回 null .

    在清单中,我有以下权限

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

    我在android 7.0上测试

    1 回复  |  直到 6 年前
        1
  •  1
  •   SergeyBukarev    6 年前

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

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

        2
  •  0
  •   ELIP    5 年前

    让我们在你的手机里设置权限。它对我有用 enter image description here