ich muss ein bild von der kamera auf android speichern. i verwendet, um die Schreib externe Speicher Erlaubnis in einem offenkundigen und ich diesen Code verwendenandroid mkdirs funktioniert nicht
File dir = new File(Environment.getExternalStorageDirectory(), "Test");
if (!dir.exists() || !dir.isDirectory())
dir.mkdirs();
String path = dir.getAbsolutePath();
Log.d(TAG, path); //log show the path
File file = new File(dir.getAbsolutePath() + "/Pic.jpg");
Log.d(TAG, file.getAbsolutePath()); //again path is shown here
outStream = new FileOutputStream(file);
outStream.write(bytes);
outStream.close();
Log.d(TAG, "onPictureTaken - wrote bytes: " + bytes.length); //fail here
} catch (FileNotFoundException e) {
Log.d(TAG, "not done"); //error is here (this exception is thrown)
} catch (IOException e) {
Log.d(TAG, "not");
} finally { }
i auch mkdir versucht() anstelle von mkdirs() gleichem Ergebnis.
keine Ahnung, was im Code falsch gelaufen ist?
danke
Vielleicht [Sie haben keine Laufzeitberechtigungen implementiert] (https://stackoverflow.com/questions/32635704/android-permission- doesnt-work-even-wenn-ich-habe-deklariert-es). Darüber hinaus ** keine Ausnahme ohne Protokollierung **. Fügen Sie '' 'als dritten Parameter zu Ihren' Log.d() 'Aufrufen hinzu, und verwenden Sie dann LogCat, um die mit Ihrem Absturz verbundene Java-Stack-Ablaufverfolgung zu untersuchen. – CommonsWare
Können Sie uns den StackTrace zeigen? – ToYonos
'if (! Dir.exists() ||! Dir.isDirectory()) dir.mkdirs();'. Schönes Beispiel für schlechten Code. Erstens, wenn es in der Tat kein Verzeichnis ist, daher wird eine Datei mkdirs diese Datei nicht in ein Verzeichnis konvertieren. Zweitens sollten Sie den Rückgabewert von mkdirs überprüfen, da dieser fehlschlagen könnte. Was es übrigens gemacht hat. – greenapps