Kann das Verzeichnis für externe Dateien in Android nicht erstellen. WRITE_EXTERNAL_STORAGE ist vorhanden

8

Ich habe versucht, sowohl mein ApplicationContext als auch mein aufrufendes Service 's Context zu verwenden, um auf das externe Verzeichnis zuzugreifen. Leider gibt es weiterhin null zurück, und LogCat meldet, dass es das externe Verzeichnis nicht erstellen konnte. Ich bin sicher, ich habe% code% vorhanden, aber es wird immer noch nicht funktionieren. Auf meinem Gerät läuft API 10 (2.3.3) Vanille Android. Irgendwelche Ideen?

Hier ist mein Manifest:

%Vor%

und hier kommt der Code durcheinander:

%Vor%

Der Code ist eine Methode von WRITE_STORAGE_PERMISSION , die von einem Runnable aufgerufen wird. Der Konstruktor von Service benötigt als Parameter einen Runnable . Das ist die vom Code verwendete Context . Der Code löst beim Protokollaufruf eine Ausnahme aus, die erfolgreich ist , was bedeutet, dass externer Speicher vorhanden und verfügbar ist.

UPDATES VON VERSUCHTEN FIXES:

Eine Neuinstallation funktioniert nicht.
Zurück zu API 9 funktioniert nicht, obwohl es früher funktioniert hat.

    
cesar 28.09.2011, 17:40
quelle

3 Antworten

9

FIXED , aber ich weiß nicht, warum es jetzt funktioniert. Ich starte das Gerät neu , dann würde es auf einmal wieder funktionieren; Context#getExternalFilesDir () beendet die Rückgabe von null . Obwohl es jetzt funktioniert (Danke und Requisiten an Roy und Moss), sollte ich das an Google melden oder so?

    
cesar 28.09.2011, 18:13
quelle
6

Das ist ein alter Thread, aber ich habe gerade das selbe Problem bekommen und den Grund gefunden, von dem ich überrascht bin, ist nicht gewöhnlicher. Ich habe versucht, auf den externen Speicher zu schreiben, während mein Gerät mit dem Computer / Eclipse verbunden war .. und ich erhielt den folgenden Fehler,

  

06-25 16: 16: 09.565: W / ApplicationContext (4290): Verzeichnis für externe Dateien kann nicht erstellt werden   06-25 16: 16: 09.565: W / System.err (4290): java.io.FileNotFoundException: /full_archive.zip: Öffnen fehlgeschlagen: EROFS (Schreibgeschütztes Dateisystem)   06-25 16: 16: 09.565: W / System.err (4290): bei libcore.io.IoBridge.open (IoBridge.java:416)   06-25 16: 16: 09.565: W / System.err (4290): bei java.io.FileOutputStream. (FileOutputStream.java:88)   06-25 16: 16: 09.565: W / System.err (4290): bei java.io.FileOutputStream. (FileOutputStream.java:73)   06-25 16: 16: 09.565: W / System.err (4290): at com.seine.trophy.database.DownloaderThread.run (DownloaderThread.java:79)   06-25 16: 16: 09.573: W / System.err (4290): Verursacht von: libcore.io.ErrnoException: Öffnen fehlgeschlagen: EROFS (schreibgeschütztes Dateisystem)   06-25 16: 16: 09.573: W / System.err (4290): bei libcore.io.Posix.open (native Methode)   06-25 16: 16: 09.573: W / System.err (4290): bei libcore.io.BlockGuardOs.open (BlockGuardOs.java:110)   06-25 16: 16: 09.573: W / System.err (4290): bei libcore.io.IoBridge.open (IoBridge.java:400)   06-25 16: 16: 09.573: W / System.err (4290): ... 3 mehr

Dies stammt aus dem Entwicklerhandbuch ...

  

Vorsicht: Externer Speicher kann nicht mehr verfügbar sein, wenn der Benutzer den externen Speicher auf einem Computer einbindet ...

Das Lösen des Telefons von meinem Computer / IDE löste das Problem für mich.

    
Todd Painton 25.06.2013 21:22
quelle
2

Sie benötigen die Berechtigung WRITE_EXTERNAL_STORAGE in Ihrer AndroidManifest.xml. Zumindest hat es das für mich gelöst.

Fügen Sie die Zeile <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> vor Ihrer <application ... -Zeile hinzu.

    
Graham Rogers 23.12.2012 21:39
quelle

Tags und Links