Ausnahme 'open failed: EACCES (Permission denied)" auf Android

Ich bin immer

open failed: EACCES (Permission denied)

auf der Linie OutputStream myOutput = new FileOutputStream(outFileName);

Ich habe in der root, und ich habe versucht android.permission.WRITE_EXTERNAL_STORAGE.

Wie kann ich dieses problem beheben?

try {
    InputStream myInput;

    myInput = getAssets().open("XXX.db");

    //Path to the just created empty db
    String outFileName = "/data/data/XX/databases/"
            + "XXX.db";

    //Open the empty db as the output stream
    OutputStream myOutput = new FileOutputStream(outFileName);

    //Transfer bytes from the inputfile to the outputfile
    byte[] buffer = new byte[1024];
    int length;
    while ((length = myInput.read(buffer)) > 0) {
        myOutput.write(buffer, 0, length);
    }

    //Close the streams
    myOutput.flush();
    myOutput.close();
    myInput.close();
    buffer = null;
    outFileName = null;
}
catch (IOException e1) {
    //TODO Auto-generated catch block
    e1.printStackTrace();
}
Ich hatte das gleiche problem auf einem Android-tablet, aber meine situation ist einzigartig, so dass ich meine Lösung hier in einem Kommentar. Der Fehler trat auf, wenn die Anwendung versucht, Zugriff auf das Verzeichnis /Daten/Daten/Anwendung/foo, die hatten über 50 xml-Dateien. Die app nicht sauber die Ordner durch einen bug. Nachdem einige alte Dateien, die gelöscht wurden, verschwand die Fehlermeldung. Ich weiß nicht, warum. Könnte es ein problem der generischen Android-Gerät.
Dies löste mir : stackoverflow.com/questions/33666071/...

InformationsquelleAutor Mert | 2012-01-13

Schreibe einen Kommentar