我正在呼叫 listFiles() 并授予讀寫權限;在 Android 11 上,但即使路徑正確(我從 ActivityResultContracts.OpenDocumentTree() Activity 獲取路徑)并像這樣存盤為變數,它也會給出 NullPointerException 錯誤folderPath = it.path
var mydir = File(folderPath)
files = mydir.listFiles()!!
即使 mydir 列印正確,它仍然會導致 NullPointerException,例如:
/tree/primary:SHAREit Lite/pictures
uj5u.com熱心網友回復:
我從 ActivityResultContracts.OpenDocumentTree() 活動中獲得了路徑
那么你不是在處理檔案系統。您正在使用存盤訪問框架,它是圍繞許多不同可能的內容存盤位置的抽象。但這意味著您需要停止使用File,因為內容可能不在檔案系統上,并且 aUri不是檔案系統路徑。
取而代之的是,用于在由您從中獲得的 標識的樹上DocumentFile.fromTreeUri()獲取 a 。您可以呼叫它來獲取表示該樹的直接內容的物件。DocumentFileUriActivityResultContracts.OpenDocumentTree()listFiles()DocumentFile
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/523296.html
標籤:安卓科特林安卓工作室 2.0
