2017-01-19 2 views
3

Meine Anwendung sollte eine piechart als PNG auf der external storage speichern. Doch dieser Fehler angezeigt:Datei nicht gefunden Fehler ohne ersichtlichen Grund?

java.io.FileNotFoundException: /storage/emulated/0/SAVE IMAGE EXAMPLE/myimage.png (No such file or directory) 

ich die Anweisungen befolgt diese Art von Funktionalität hinzuzufügen, sehr eng (Von diesen tutorial), aber noch der Fehler angezeigt wird. Die App hat die Erlaubnis, auf externen Speicher zu schreiben, ich habe die Erlaubnis in meiner android_manifest.xml hinzugefügt.

Können Sie den Fehler erkennen? Weil ich nicht kann.

Wenn Sie auch den Fehler nicht finden können, können Sie einen anderen Weg empfehlen, dies zu tun?

Ich benutze MPAndroidChart, aber ich glaube nicht, dass es damit zu tun hat, weil ich versuchen könnte, ein anderes Objekt zu speichern und der Fehler bleibt.

Der Code ist

final PieChart piechart = (PieChart) findViewById(R.id.piechart); 

button2.setOnClickListener(new View.OnClickListener() { 
    public void onClick (View v) { 
    Toast.makeText(Main.this, "Chart Saved", Toast.LENGTH_SHORT).show(); 
    piechart.setCenterText("Test"); 
    Bitmap bitmap; 
    OutputStream output; 

    bitmap = BitmapFactory.decodeResource(getResources(),R.id.piechart); 

    File filepath = Environment.getExternalStorageDirectory(); 

    File dir = new File(filepath.getAbsolutePath()+"/SAVE IMAGE EXAMPLE"); 
    dir.mkdirs(); 

    File file = new File(dir, "myimage.png"); 

    try { 
     output = new FileOutputStream(file); 

     bitmap.compress(Bitmap.CompressFormat.PNG, 100, output); 
     output.flush(); 
     output.close(); 


    }catch(Exception e){ 
     e.printStackTrace(); 
    } 
} 
}); 

FULL ERROR

W/System.err: java.io.FileNotFoundException: /storage/emulated/0/SAVE IMAGE EXAMPLE/myimage.png (No such file or directory) 
W/System.err:  at java.io.FileOutputStream.open(Native Method) 
W/System.err:  at java.io.FileOutputStream.<init>(FileOutputStream.java:221) 
W/System.err:  at java.io.FileOutputStream.<init>(FileOutputStream.java:169) 
W/System.err:  at com.pies.quickpie.Main$1$3.onClick(Main.java:175) 
W/System.err:  at android.view.View.performClick(View.java:5637) 
W/System.err:  at android.view.View$PerformClick.run(View.java:22429) 
W/System.err:  at android.os.Handler.handleCallback(Handler.java:751) 
W/System.err:  at android.os.Handler.dispatchMessage(Handler.java:95) 
W/System.err:  at android.os.Looper.loop(Looper.java:154) 
W/System.err:  at android.app.ActivityThread.main(ActivityThread.java:6119) 
W/System.err:  at java.lang.reflect.Method.invoke(Native Method) 
W/System.err:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 
W/System.err:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 
+0

Überprüfen Sie, ob Sie den genauen Fall der Pfad und Namen korrekt haben, Android, wobei auf Linux basiert, hat eine Groß- und Kleinschreibung Dateisystem. – john16384

+0

Haben Sie Zugriffsrechte für den Speicher? Externer Speicher erfordert möglicherweise eine Berechtigung. – Dawnkeeper

+0

Ich habe @dawnkeeper, hat die Erlaubnis in meinem android_manifest.xml hinzugefügt – niklasdude

Antwort

Verwandte Themen