Android模拟器SD卡突然只读(无法挂载?)

时间:2011-03-02 23:27:32

标签: android

我已经使用安装了SD卡的Android模拟器几周了,没问题。今天我启动我的应用程序,当我的活动尝试访问/ mnt / sdcard时,它会因NullPointerException而崩溃。我检查DDMS文件资源管理器和/ mnt / sdcard似乎是空的。我尝试将文件推送到它上面,但它是只读的,权限是---------。在logcat输出的开头有这两行:

D/Vold    (   29): Volume sdcard state changing -1 (Initializing) -> 0 (No-Media)
D/Vold    (   29): Volume sdcard state changing 0 (No-Media) -> 1 (Idle-Unmounted)

所以我认为sdcard.img由于某种原因突然无法挂载。任何想法为什么会这样?

4 个答案:

答案 0 :(得分:3)

打开模拟器的shell

adb shell

然后输入以下命令:

mount -o remount,rw /sdcard

现在有用吗?

答案 1 :(得分:1)

可能你会忘记为你的SD卡分配内存。转到Android虚拟设备管理器并编辑您的模拟器设置,将SD卡大小设置为512mb。这对我有用。

答案 2 :(得分:1)

我也遇到了这个问题两天跟踪。

  1. 我忘了为我的SD卡分配内存。转到Android虚拟设备管理器并编辑模拟器设置,将SD卡大小设置为128mb。

  2. 检查AndroidMenifest.xml以设置权限  

  3. 在应用程序中使用以下代码来测试文件操作

    std::FILE* file = std::fopen("/sdcard/hello.txt","w+");
    if (file != NULL)    
    {
        std::fputs("HELLO WORLD!\n", file);
        std::fflush(file);
        std::fclose(file);
    }
    
  4. 在模拟器中运行可执行应用程序, 然后使用“adb shell ls / sdcard”检查是否已创建文件“hello.txt”。

答案 3 :(得分:0)

我在命令mount -o remount,rw /sdcard输出了“无效参数”消息。所以 我移动了文件夹“android-sdk”,以便路径名中没有空格。