[英]Rendering problem in Android Studio when writing files
我有一個非常簡單的代碼可以寫入這樣的文件 -
val path = context.getExternalFilesDir(null)?.absolutePath + "/user_id"
var file = File(path)
file.writeText("user id")
這在模擬器上沒有問題。
但是,當我在 Android Studio 上編輯它時,我正在使用的 layout.xml 的渲染(調用上面的代碼)失敗,引用file.writeText
代碼行上的錯誤
更具體地說,我在調用堆棧上得到了這個異常 -
java.io.FileNotFoundException: null\user_id (The system cannot find the path specified)
換句話說,上面的代碼在模擬器中運行良好,但在 Android Studio 布局預覽中卻不行。
有人對這個項目有任何想法嗎?
布局預覽正在渲染視圖。 我能想到為什么這段代碼會在 Android Studio 布局預覽中運行的唯一原因是:
您編寫了一個自定義視圖(這很好),並且
該自定義視圖正在嘗試執行磁盤 I/O(這不好)
因此,最好的解決方案是將磁盤 I/O 移動到更合適的位置(例如,存儲庫對象)。
如果您確定要保留該代碼,請將其包裝在isInEditMode()
的檢查中,並且如果您處於編輯模式,則不要執行 I/O。 這意味着代碼在 IDE 中運行,並且Context
上的許多東西,例如getExternalFilesDir()
,將不起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.