日期:2014-05-16  浏览次数:20413 次

使用adb命令向android模拟器sdcard复制文件无法写入问题
模拟器开启或手机连接后,在命令行使用adb push命令向其中拷贝文件时报出
failed to copy 'xxxx' to '\sdcard\': Read-only file system
错误


按照错误的意思好像是文件系统的权限不够,也就是说目标文件系统是只读的,无法向其中写入数据。但是很明显,目标文件系统是我的SD卡,怎么会无法写入呢?


原因在于:


Android是基于Linux开发的,其所使用的文件系统当然也是Linux内核所能支持的,比如YAFFS或者Ext3等,在这些文件系统里,是没有盘符概念的,而且路径名是使用斜杠“/”来分隔的,这一点,Windows系统和它有着明显的区分:Windows文件系统中有盘符(F:/,C:/),并且路径是用反斜杠“/”来分隔。
因此上面的adb push命令的第二个参数 mnt/sdcard 是不伦不类的表示法,问题就出在这里。


解决办法:
将第二个参数,也就是mnt\sdcard改成mnt/sdcard即可。
这个命令还是很特别的,两个参数面向的平台可以是不同的,因此,如果在Linux系统下就不会出现这个问题了。