viernes, 23 de septiembre de 2016

Fix "Assertion failed: Write access is allowed inside write-action only"

Desarrollando un plugin para Android Studio me saltaba el siguiente error cuando intentaba escribir cambios en un documento:

ERROR - plication.impl.ApplicationImpl - Assertion failed: Write access is allowed inside write-action only (see com.intellij.openapi.application.Application.runWriteAction()) 


El problema se encontraba en la siguientes linea:

Document projectDoc=DocumentHelper.getProjectBuildDotGradleFile();
projectDoc.setText("Some text");

El problema ocurre porque para poder escribir en un documento debe hacerse desde un hilo.
Para solucionarlo cambiamos el código anterior por el siguiente:

 ApplicationManager.getApplication().runWriteAction(new Runnable() {
            @Override
            public void run() {
                Document projectDoc=DocumentHelper.getProjectBuildDotGradleFile();
                projectDoc.setText("Some text");
            }
});

No hay comentarios:

Publicar un comentario