0
    bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);

    if(android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
    {
        cacheFile = new File(android.os.Environment.getExternalStorageDirectory(), "Android/data/"+this.getPackageName()+"/cache/");
        if(!cacheFile.exists())
        {
            cacheFile.mkdir();
        }
        try {
            fileOutputStream = new FileOutputStream(cacheFile);
            bitmap.compress(Bitmap.CompressFormat.PNG, 100, fileOutputStream);
            fileOutputStream.flush();
            fileOutputStream.close();
        } catch (Exception e) {
            Log.i("Error", e.getMessage());
        }
    }

しかし、mnt/sdcard/Android/data/com.android.linegame/cache ファイルが存在しないというエラーが表示されます

4

1 に答える 1

0

使用しているAndroidのバージョンはどれですか?Android2.2にはmnt/sdcardにフォルダ「Android」が含まれているためです。ただし、Android4.0バージョンには「Android」フォルダが含まれていません。

次のコードを追加します。

cacheFile = new File(Environment.getExternalStorageDirectory(), "/Android/data/"+this.getPackageName()+"/cache/");
if(!cacheFile.exists()) {
    cacheFile.mkdirs();
}
于 2012-07-06T13:17:37.817 に答える