我已经使用安装了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由于某种原因突然无法挂载。任何想法为什么会这样?
答案 0 :(得分:3)
打开模拟器的shell
adb shell
然后输入以下命令:
mount -o remount,rw /sdcard
现在有用吗?
答案 1 :(得分:1)
可能你会忘记为你的SD卡分配内存。转到Android虚拟设备管理器并编辑您的模拟器设置,将SD卡大小设置为512mb。这对我有用。
答案 2 :(得分:1)
我也遇到了这个问题两天跟踪。
我忘了为我的SD卡分配内存。转到Android虚拟设备管理器并编辑模拟器设置,将SD卡大小设置为128mb。
检查AndroidMenifest.xml以设置权限
在应用程序中使用以下代码来测试文件操作
std::FILE* file = std::fopen("/sdcard/hello.txt","w+");
if (file != NULL)
{
std::fputs("HELLO WORLD!\n", file);
std::fflush(file);
std::fclose(file);
}
在模拟器中运行可执行应用程序, 然后使用“adb shell ls / sdcard”检查是否已创建文件“hello.txt”。
答案 3 :(得分:0)
我在命令mount -o remount,rw /sdcard
输出了“无效参数”消息。所以
我移动了文件夹“android-sdk”,以便路径名中没有空格。