面临空指针异常,无法在android中从内部存储获取文件 arraylistfiles=allFiles(Environment.getExternalStorageDirectory()); 私有ArrayList所有文件(文件根){ ArrayList ArrayList=新的ArrayList(); File files[]=root.listFiles(); 用于(文件:文件){ if(file.isDirectory()){ addAll(allFiles(file)); }否则{ arrayList.add(文件); } } 返回数组列表; }
我正在尝试列出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:尝试获取空数组的长度 请帮我解决这个问题。面临空指针异常,无法在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
谢谢, 您获得的文件数组为空,因为您没有访问内部存储的读取权限 确保您已经阅读了要访问的任务
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);
}