我的应用程序使用SD卡上的数据目录来存储文件。在启动时,如果该目录尚不存在,则会创建该目录。出于某种原因,这适用于我设置的不同AVD,除非我将分辨率设置为QVGA时无法使其工作。
代码很无聊:
File root = new File("/sdcard/mydir");
if(!root.exists()) {
try {
root.mkdir();
}
catch...
mkdir()返回false。
任何想法为什么?
答案 0 :(得分:3)
创建QVGA AVD时可能忘记设置SD卡。尝试重新设置。
此外,您不应该硬编码到外部存储的路径。 http://developer.android.com/guide/topics/data/data-storage.html解释了一些访问外部存储的API。
以下代码段可能会检测到一些安装问题。
boolean mExternalStorageAvailable = false; boolean mExternalStorageWriteable = false; String state = Environment.getExternalStorageState();if (Environment.MEDIA_MOUNTED.equals(state)) { // We can read and write the media mExternalStorageAvailable = mExternalStorageWriteable = true; } else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) { // We can only read the media mExternalStorageAvailable = true; mExternalStorageWriteable = false; } else { // Something else is wrong. It may be one of many other states, but all we need // to know is we can neither read nor write mExternalStorageAvailable = mExternalStorageWriteable = false; }
答案 1 :(得分:0)
事实证明我忘记了将SD卡许可添加到我的清单中:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
未经许可,该程序适用于除QVGA之外的所有模拟器,甚至在我的Droid上。