2012-04-11 1 views
20

Je travaille sur une application depuis un certain temps et je l'ai testé sur de nombreux périphériques. Soudain, il a cessé de travailler sur le Motorola Xoom Family Edition (Honeycomb 3.1). Chaque fois que j'essayais d'exécuter l'application, elle échouait lors de l'appel de getExternalFilesDir(), car cet appel renvoyait null au lieu d'un fichier. D'après mes recherches, toute personne ayant un problème similaire manque WRITE_EXTERNAL_STORAGE, n'a jamais eu de réponse ou parlait d'un bug dans Froyo. Rien de tout cela ne s'applique ici - et encore, cela fonctionne bien sur d'autres appareils, j'ai l'autorisation WRITE_EXTERNAL_STORAGE, et il fonctionnait même sur cet appareil jusqu'à il y a quelques minutes.getExternalFilesDir() renvoie null (pas un problème d'autorisations)

Une idée de ce qui pourrait causer ce problème, ou comment l'empêcher par programme?

Répondre

22

Le problème s'est éteint après avoir redémarré la tablette. Il peut s'agir simplement d'une bizarrerie bizarre qui est extrêmement rare et fixée par un simple redémarrage; J'espère que non, car je voudrais avoir un moyen solide d'empêcher cela au lieu d'espérer que tous les utilisateurs qui rencontrent le bug sont compréhensifs.

+3

A travaillé pour moi. Rien de pire que heisenbug dans un système d'exploitation. –

+0

Je noterai que le Motorola Xoom Family Edition, d'après d'autres tests et développements que j'ai faits, a beaucoup de bugs et est assez mal construit sur le plan logiciel. L'autre, plus populaire Xooms sont bien. J'espère que la mise à jour du Ice Cream Sandwich du 4e trimestre 2012 aidera. –

+6

J'ai été affecté par le même problème sur le périphérique Nexus 7. Le redémarrage a aidé, mais ce problème est étrange. –

6

Même problème sur Samsung SCH-1405 (VZW Galaxy II) fonctionnant sous 2.3.6 (noyau 2.6.35.7-FF1). Aucun problème pour obtenir le répertoire des fichiers externes pendant des mois, puis bam, il commence à retourner NULL. Le téléphone a redémarré et le problème est parti. Pas un bon présage. Une cause possible pourrait être que j'ai éteint et rallumé le téléphone en mode de débogage USB pour obtenir des copies d'écran et que j'ai débranché le câble USB du téléphone sans d'abord démonter les systèmes de fichiers du téléphone de mon Mac. C'est un nouveau comportement de ma part.

Lorsque je regarde le résultat de retour de android.os.Environment.getExternalStorageState() avec le problème présent, je vois "partagé", mais lorsque le téléphone est redémarré, le résultat est "monté". Ainsi, il semble que lorsque le téléphone pense que le stockage externe est "partagé", il ne permet pas à une application d'accéder au stockage externe. C'est une spéculation.

0

Ceci se produira si l'appareil est en mode "Mass Storage". Si vous le changez en MTP ou "Charge Only", selon l'appareil, cela devrait fonctionner. En effet, le stockage de données externe n'est techniquement pas monté sur l'appareil mais sur votre ordinateur.

Questions connexes