php小編草莓為您解答Java程式設計中常見問題:即使具有權限,也無法為應用程式建立目錄或檔案的情況。這種問題可能出現在作業系統權限設定、檔案路徑錯誤、檔案已存在等方面。透過排查檔案路徑、檢查作業系統權限、確保檔案不存在等方法,可以解決這個問題,確保程式正常運作。如果您遇到類似情況,不妨嘗試以上方法看看是否能解決您的困擾。
我有一個幾年前製作的應用程式。最近我只是重新編譯了它,做了很少的更改,這樣我就可以更改目標 sdk 並且仍然在 play 商店中列出。
事實證明,這從根本上破壞了某些手機(包括我自己的手機)中的應用程式。在上傳之前,我在另一部手機上對其進行了測試,並且運行良好(android 版本 8.1.0)。我的手機運行的是 android 11(無法運行)。
問題似乎在於在內部儲存中建立和讀取檔案的能力,而應用程式的重點是維護單一檔案。
這是我嘗試建立目錄的函數。這只是我在創建時調用的測試函數,它不是原始應用程式的一部分:
public static void AttemptDirCreate(){ String dirname = Environment.getExternalStorageDirectory().toString() + "/this_is_a_test"; File dir = new File(dirname); System.err.println("Attempting to create directory: '" + dirname + "'"); boolean make_result = false; if (!dir.exists()) { try { make_result = dir.mkdir(); } catch (SecurityException se) { System.err.println("ERROR. Could not make dir. Reason: " + se.getMessage()); } } if (make_result){ System.err.println("MKDir result is true"); } else { System.err.println("MKDir result is false"); } if (dir.exists()){ System.err.println("Dir has been created"); } else { System.err.println("Was unable to create dir"); } }
問題是沒有建立目錄並且沒有拋出例外。當我進入應用程式資訊時,我看到檔案和媒體的權限。
嘗試建立目錄的路徑是:'/storage/emulated/0/this_is_a_test'
據我所知,這是正確的路徑。該應用程式在首次安裝時確實詢問了我的權限。
那為什麼它不能建立目錄呢?如何找出問題並解決它?
澄清一下,這個完全相同的功能適用於 android 8.1.0,但不適用於 android 11。不確定,截止點是什麼。
您無法在 Android 11 裝置的外部儲存根目錄中建立檔案和目錄。
而是使用現有的公共目錄之一。
喜歡 DCIM、圖片、文件...
以上是即使有權限,也無法為我的應用程式建立目錄或文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!