2012-04-11 17 views
20

He estado trabajando en una aplicación durante algún tiempo y la he estado probando en muchos dispositivos. De repente, dejó de funcionar en el Motorola Xoom Family Edition (Honeycomb 3.1). Cada vez que intentaba ejecutar la aplicación, fallaba en la llamada a getExternalFilesDir(), ya que esa llamada devolvería null en lugar de File.getExternalFilesDir() devuelve nulo (no es un problema de permisos)

Según mi investigación, cualquier persona con un problema similar o no tiene WRITE_EXTERNAL_STORAGE, nunca obtuvo una respuesta, o estaba hablando de un error en Froyo. Nada de eso se aplica aquí, y de nuevo, funciona bien en otros dispositivos, tengo el permiso WRITE_EXTERNAL_STORAGE, e incluso estaba trabajando en este dispositivo hasta hace unos minutos.

¿Alguna idea de qué podría causar este problema o cómo prevenirlo mediante programación?

Respuesta

22

El problema desapareció después de reiniciar la tableta. Puede ser solo un capricho extraño que es extremadamente raro y se soluciona con un simple reinicio; Espero que no, ya que me gustaría tener una forma sólida de evitar esto en lugar de esperar que cualquier usuario que se encuentre con el error lo entienda.

+3

Funcionó para mí. Nada peor que heisenbug en un SO. –

+0

Notaré que el Motorola Xoom Family Edition, a partir de otras pruebas y desarrollo que he hecho, tiene muchos errores y está bastante mal construido en cuanto a software. Los otros Xooms más populares están bien. Esperemos que la actualización Ice Cream Sandwich del cuarto trimestre de 2012 sea útil. –

+6

Me ha afectado el mismo problema en el dispositivo Nexus 7. Reiniciar ayudó, pero este problema es extraño. –

6

Mismo problema en Samsung SCH-1405 (VZW Galaxy II) con 2.3.6 (kernel 2.6.35.7-FF1). Sin problemas para obtener el directorio de archivos externos durante meses y luego bam, comienza a devolver NULL. El teléfono reiniciado y el problema desaparecieron. No es un buen augurio

Una posible causa podría ser que he estado cambiando el teléfono de modo de depuración de USB para obtener capturas de pantalla y he estado arrancando el cable USB del teléfono sin desmontar los sistemas de archivos del teléfono de mi Mac. Este es un nuevo comportamiento de mi parte.

Cuando miro el resultado de devolución de android.os.Environment.getExternalStorageState() con el problema presente, veo "compartido", pero cuando se reinicia el teléfono el resultado es "montado". Por lo tanto, parece que cuando el teléfono piensa que el almacenamiento externo es "compartido", no permite que una aplicación acceda al almacenamiento externo. Esto es especulación.

0

Esto sucederá si el dispositivo está en el modo "Almacenamiento masivo". Si lo cambia a MTP o "Solo carga", según el dispositivo, debería funcionar. Esto se debe a que el almacenamiento de datos externos técnicamente no está montado en el dispositivo sino en su computadora.

Cuestiones relacionadas