-1


使用 Android-Emulator,我无法在 SD 卡上写入/创建文件(用于记录)。
这是我到目前为止所做的
- 运行 mksdcard 8192K C:\android-dev\emu_sdcard\emu_logFile
- 创建一个新的 AVD,将 emu_logFile 分配给它,这样当我查看 AVD 详细信息时,它会显示 C:\android-dev\ emu_sdcard\emu_logFile 针对“SD卡”字段
- 这是相关代码

public class ZLogger {   
  static PrintWriter zLogWriter = null;
private static void Initialize() {
    try {
        File sdDir = Environment.getExternalStorageDirectory();
        if (sdDir.canWrite()) {
            :
            File logFile = new File (sdDir, VERSION.RELEASE + "_" + ".log");

            FileWriter logFileWriter = new FileWriter(logFile);

            zLogWriter = new PrintWriter(logFileWriter);

            zLogWriter.write("\n\n - " + date + " - \n");               
        }
    } catch (IOException e) {
        Log.e("ZLogger", "Count not write to file: " + e.getMessage());
    }
}

sdDir.canWrite返回 false - 请注意不是例外

从 adb shell 执行 ls 时,我将 sdcard 视为 /mnt/sdcard 的链接。当我这样做时 ls -l /mnt 这是我看到的

ls -l /mnt

ls -l /mnt
drwxr-xr-x 根系统 2010-12-24 03:41 asc
drwx------ 根根 2010-12-24 03:41 安全
d--------- 系统系统 2010-12-24 03:41 sdcard

而如果我转到创建 emu_sdcard 的目录 - 我看到已发出锁,如此处所示

C:>dir android-dev\emu_sdcard
驱动器 C 中的卷是预加载
卷序列号是 A4F3-6C29

C:\android-dev\emu_sdcard 目录

2010 年 12 月 24 日上午 03:41。
12/24/2010 03:41 AM ..
12/24/2010 03:17 AM 8,388,608 emu_logFile
12/24/2010 03:41 AM emu_logFile.lock
1 File(s) 8,388,608 bytes
3 Dir(s) 50,347,704,320 bytes free

我已经查看了这些和其他 SO 问题
Android Emulator sdcard push error: Read-only file system (2)
Not able to view SDCard folder in the FileExplorer of Android Eclipse

我已将以下内容添加到 AndroidManifest.xml
**uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" **

请让我知道您的想法-我在这里缺少什么?为什么canWrite返回 false?我应该怎么做才能将权限添加到 sdcard?

4

2 回答 2

1

这是我一直错过的控制台窗口中的消息 -
[2010-12-28 12:14:08 - Emulator] ### WARNING: SD Card files must be at least 9MB, ignoring 'C:\android-dev\emu_sdcard\emu_logFile'

这个故事的另一个寓意是 - 监视控制台窗口,而不仅仅是 LogCat 窗口

于 2010-12-28T20:19:08.557 回答
1

好吧 - 我确实让它工作了(即 canWrite 返回 true)。

这是我所做的

  • 使用以下命令创建了一个新的 SD 卡映像文件

C:\android-scripts>mksdcard -l Emu1GSD 1024M C:\android-dev\emu_sdcard\emu1gsd.img
之前的 SD 卡图像没有使用标签,大小为 8MB,扩展名不是 .img。我没有费心去找出其中哪一个是可能的原因。以前的图像文件也可能已损坏!

  • 第二步是使用新的 SD 卡映像文件重新创建一个新的 AVD。这是 AVD 现在的样子
    替代文字

上一条评论中提到的 getTotalspace 问题仍然存在 - 我将为此创建一个新问题。

于 2010-12-28T00:48:11.150 回答