私の Android アプリは、AVD の SD カードにファイルを書き込むことができません。コードは次のとおりです。
File root = Environment.getExternalStorageDirectory();
Log.w("sdcard", "root.canWrite() = " + root.canWrite());
try {
File myFile = new File(root + File.pathSeparator + "mysdfile.txt");
myFile.createNewFile();
FileOutputStream fOut = new FileOutputStream(myFile);
OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut);
myOutWriter.append("testing testing 123");
myOutWriter.close();
fOut.close();
} catch (IOException e) {
Log.w("ExternalStorage", "Error writing", e);
}
root.canWrite()
true を返すと、次の例外が発生します。
java.io.IOException: open failed: EROFS (Read-only file system)
マニフェスト ファイルには WRITE_EXTERNAL_STORAGE 権限があります (マニフェストの直接の子):
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
また、次を使用して AVD シェルで SD カードを再マウントしようとしました。
mount -o remount rw /mnt/sdcard
...しかし、役に立たない。AVD には、「SD カード サポート」フラグも設定されています。ここから何をすべきかわからない、何かアイデアはありますか?