Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
面临空指针异常,无法在android中从内部存储获取文件 arraylistfiles=allFiles(Environment.getExternalStorageDirectory()); 私有ArrayList所有文件(文件根){ ArrayList ArrayList=新的ArrayList(); File files[]=root.listFiles(); 用于(文件:文件){ if(file.isDirectory()){ addAll(allFiles(file)); }否则{ arrayList.add(文件); } } 返回数组列表; }_Android_Nullpointerexception - Fatal编程技术网

面临空指针异常,无法在android中从内部存储获取文件 arraylistfiles=allFiles(Environment.getExternalStorageDirectory()); 私有ArrayList所有文件(文件根){ ArrayList ArrayList=新的ArrayList(); File files[]=root.listFiles(); 用于(文件:文件){ if(file.isDirectory()){ addAll(allFiles(file)); }否则{ arrayList.add(文件); } } 返回数组列表; }

面临空指针异常,无法在android中从内部存储获取文件 arraylistfiles=allFiles(Environment.getExternalStorageDirectory()); 私有ArrayList所有文件(文件根){ ArrayList ArrayList=新的ArrayList(); File files[]=root.listFiles(); 用于(文件:文件){ if(file.isDirectory()){ addAll(allFiles(file)); }否则{ arrayList.add(文件); } } 返回数组列表; },android,nullpointerexception,Android,Nullpointerexception,我正在尝试列出android设备上的所有文件。 在上面的代码中,出现了一些异常: 2020-01-24 15:20:31.048 23877-23877/com.example.readingfromstorage E/AndroidRuntime:FATAL EXCEPTION:main 进程:com.example.readingfromstorage,PID:23877 java.lang.RuntimeException:无法启动活动ComponentInfo{com.example.r

我正在尝试列出android设备上的所有文件。 在上面的代码中,出现了一些异常:

2020-01-24 15:20:31.048 23877-23877/com.example.readingfromstorage E/AndroidRuntime:FATAL EXCEPTION:main 进程:com.example.readingfromstorage,PID:23877 java.lang.RuntimeException:无法启动活动ComponentInfo{com.example.readingfromstorage/com.example.readingfromstorage.MainActivity}:java.lang.NullPointerException:尝试获取空数组的长度

请帮我解决这个问题。
谢谢,

您获得的文件数组为空,因为您没有访问内部存储的读取权限

确保您已经阅读了要访问的任务

ArrayList<File> files = allFiles(Environment.getExternalStorageDirectory());

private ArrayList<File> allFiles(File root){
    ArrayList<File> arrayList = new ArrayList<>();
    File files[] = root.listFiles();

    for(File file:files){
        if(file.isDirectory()){
            arrayList.addAll(allFiles(file));
        }else{
            arrayList.add(file);
        }
    }
    return arrayList;
}

也不要忘记在清单中提到权限。

请检查root.listFiles()是否为空。
 int permissionCheck = ContextCompat.checkSelfPermission(thisActivity,
                Manifest.permission.READ_EXTERNAL_STORAGE);
        if (permissionCheck== PackageManager.PERMISSION_GRANTED){
            //this means permission is granted and you can do read and write
        }else{
            requestPermissions(new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_WRITE_PERMISSION);
        }