La prestación de un problema en Android Studio cuando la escritura de archivos

Daltrey Aguas:

Tengo un código muy simple que escribe en un archivo como este -

val path = context.getExternalFilesDir(null)?.absolutePath + "/user_id"
var file = File(path)
file.writeText("user id")

Esto funciona sin problemas en el emulador.

Sin embargo, cuando estoy editando esta en Android Studio, la prestación del layout.xml estoy usando (que invoca el código anterior) falla, citando a un error en la file.writeTextlínea de código

Más específicamente, consigo esta excepción en la pila de llamadas -

java.io.FileNotFoundException: null\user_id (The system cannot find the path specified)

Así, en otras palabras, el código anterior funciona bien en el emulador, pero no dentro de Android Studio previa del diseño.

Alguien tiene alguna idea sobre este tema?

CommonsWare:

La previsualización del diseño es la prestación de vistas. La única razón que se me ocurre por qué este código se ejecuta en el diseño de previsualización Android estudio se debe a:

  • Usted escribió una vista personalizada (que está bien), y

  • Esa vista personalizada está tratando de hacer / S de disco (que no está muy bien)

Por lo tanto, la mejor solución es mover el disco I / O a algo más apropiado (por ejemplo, un objeto de depósito).

Si está seguro de que desea mantener ese código donde está, lo envuelve en un cheque porisInEditMode() y no hacen la E / S si se encuentra en modo de edición. Eso significa que el código se ejecuta en un entorno de desarrollo, y muchas cosas en Context, como getExternalFilesDir(), no funcionará.

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=404341&siteId=1
Recomendado
Clasificación