Tengo un error extraño en mi aplicación.error de apertura: EBUSY (dispositivo o recurso ocupado)
En mi aplicación, es posible descargar un archivo zip, leer el contenido tal como es y también eliminarlo. No importa qué es exactamente.
Problema: solo en el Motorola Xoom (versión 4.0.4) puedo descargar el archivo, descomprimirlo, puedo leer los datos y puedo borrar todo. Pero si trato de descargar el archivo nuevamente y mientras descomprime el archivo y copia los archivos a la tarjeta SD, se bloquea con el error EBUSY (dispositivo o recurso ocupado).
- ¿Por qué funciona solo la primera vez?
- ¿Qué significa ese error?
- ¿Por qué me sale este error solo en el Xoom?
No encontré ninguna solución para eso. En todos los demás dispositivos funciona bien, sin errores ni problemas.
LogCat:
07-18 12:27:46.774: E/PrepareMagTask(10057): IOException
07-18 12:27:46.774: E/PrepareMagTask(10057): java.io.FileNotFoundException: /mnt/sdcard/Android/data/com.xxxxxx.android/files/content/23760/emag.db: open failed: EBUSY (Device or resource busy)
07-18 12:27:46.774: E/PrepareMagTask(10057): at libcore.io.IoBridge.open(IoBridge.java:406)
07-18 12:27:46.774: E/PrepareMagTask(10057): at java.io.FileOutputStream.<init>(FileOutputStream.java:88)
07-18 12:27:46.774: E/PrepareMagTask(10057): at java.io.FileOutputStream.<init>(FileOutputStream.java:73)
07-18 12:27:46.774: E/PrepareMagTask(10057): at com.xxxxx.android.util.io.ZipHelper.uncompressEntry(ZipHelper.java:35)
07-18 12:27:46.774: E/PrepareMagTask(10057): at com.xxxxx.android.task.PrepareMagTask.doInBackground(PrepareMagTask.java:271)
07-18 12:27:46.774: E/PrepareMagTask(10057): at com.xxxxx.android.task.PrepareMagTask.doInBackground(PrepareMagTask.java:1)
07-18 12:27:46.774: E/PrepareMagTask(10057): at android.os.AsyncTask$2.call(AsyncTask.java:264)
07-18 12:27:46.774: E/PrepareMagTask(10057): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
07-18 12:27:46.774: E/PrepareMagTask(10057): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
07-18 12:27:46.774: E/PrepareMagTask(10057): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
07-18 12:27:46.774: E/PrepareMagTask(10057): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
07-18 12:27:46.774: E/PrepareMagTask(10057): at java.lang.Thread.run(Thread.java:856)
07-18 12:27:46.774: E/PrepareMagTask(10057): Caused by: libcore.io.ErrnoException: open failed: EBUSY (Device or resource busy)
07-18 12:27:46.774: E/PrepareMagTask(10057): at libcore.io.Posix.open(Native Method)
07-18 12:27:46.774: E/PrepareMagTask(10057): at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
07-18 12:27:46.774: E/PrepareMagTask(10057): at libcore.io.IoBridge.open(IoBridge.java:390)
07-18 12:27:46.774: E/PrepareMagTask(10057): ... 11 more
Se estrella en la línea 35 en mi clase ZipHelper:
FileHelper.copy(zipFile.getInputStream(entry), new FileOutputStream(outputFile), modify);
getInputStream (entrada) ... y realmente no sé por qué?
¿Hay algún método para esperar al dispositivo o recurso cuando está ocupado? Esto ocurre cada vez que intento descomprimir el archivo, la aplicación lo intenta 5 veces (Descargando -> Descomprimir) y se cuelga todo el tiempo.
EDIT: descubrimos que no es solo el Xoom. También tenemos el error con el transformador de Asus con la versión 4.0.4
Tengo el mismo problema. La aplicación "root explorer" estaba abierta. –