簡體   English   中英

寫入文件時 Android Studio 中的渲染問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM