listFiles()被调用时出现nullpointerexception



我在授予读写权限的情况下调用listFiles((;在Android 11上,但即使路径正确,它也会出现NullPointerException错误(我从ActivityResultContracts.OpenDocumentTree((活动中获得路径(,并存储为类似folderPath = it.path的变量

var mydir = File(folderPath)
files = mydir.listFiles()!!

即使mydir打印正确,它仍然会导致NullPointerException,例如:

/tree/primary:SHAREit Lite/pictures

我从ActivityResultContracts获得了路径。OpenDocumentTree((活动

那么您不是在处理文件系统。您使用的是存储访问框架,它是一个围绕许多不同的内容存储位置的抽象。但这意味着您需要停止使用File,因为内容可能不在文件系统上,并且Uri不是文件系统路径。

相反,使用DocumentFile.fromTreeUri()在由从ActivityResultContracts.OpenDocumentTree()获得的Uri标识的树上获得DocumentFile。您可以在上面调用listFiles()来获取表示该树的直接内容的DocumentFile对象。

相关内容

  • 没有找到相关文章

最新更新