Android Studio open failed erofs (read-only file system)

publicado por: Anonymous

En mi aplicación obtengo el error:

open failed erofs (read-only file system)

Este es el codigo:

AssetManager am=getAssets();// If this line gives you ERROR then try AssetManager am=getActivity().getAssets();
        InputStream is=am.open("inventario.xls");
        Workbook existingWorkbook = Workbook.getWorkbook(is);
        WritableWorkbook workbookCopy = Workbook.createWorkbook(new File("inventario.xls"), existingWorkbook);
        WritableSheet sheetToEdit = workbookCopy.getSheet(0);
        WritableCell cell;
        Label l = new Label(16,0,"Cotejar");
        cell = (WritableCell) l;
        sheetToEdit.addCell(cell);
        workbookCopy.write();
        workbookCopy.close();

        FileOutputStream fo = new FileOutputStream(new File(getFilesDir(),"inventario.xls"));
        existingWorkbook.getCell("");
        fo.close();

manifest.xml

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" />

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.VIBRATE" />

solución

Asegúrate que en el manifest.xml estás agregando los permisos de escritura, lectura y por consecuente concederlos en el dispositivo que se ejecuta (versión de Android >= 6 ) tu aplicación.

Asegúrate que tu archivo manifest contenga los siguientes permisos:

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

Edición

He buscado algo de información aquí (stackoverflow en inglés) sobre los posibles causantes de este error.

  • El primero fue el mencionado anteriormente,
  • el otro es qué puede ser que estés tratando de guardar información dentro del directorio de la aplicación, si el dispositivo que corres tu aplicación no tiene acceso como super usuario es muy probable que no te permita escribir en dicho directorio.

Prueba usar el método getExternalFilesDir(null) en vez de getFilesDir(),

FileOutputStream fo = new FileOutputStream(new File(getExternalFilesDir(null),"inventario.xls"));

si el problema persiste intenta usar el directorio de Android por defecto con

Environment.getExternalStorageDirectory();
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *