Android Emulator sdcard推送错误:只读文件系统
我正在Android 1.6(Android SDK 2.1)下进行开发。我通过在Eclipse中使用avd管理器创建avd。当启动此avd时,我发现/ sdcard目录的权限是“ d ---------”。因此,我无法将文件推送到sdcard。
有谁知道如何解决这个问题?
Leox asked 2019-09-29T17:59:29Z
20个解决方案
129 votes
我发现这个作品
$./adb shell
$su
mount -o rw,remount rootfs /
chmod 777 /mnt/sdcard
exit
来源:[http://www.coderanch.com/t/611842/Android/Mobile/Android-emulator-sdcard-writable]
user2002993 answered 2019-09-29T17:59:46Z
48 votes
从一个外壳启动仿真器后,登录到另一个外壳并键入
adb shell
您应该看到# prompt显示,这是您的设备(仿真器)外壳。 现在,在adb shell上键入以下命令。
mount -o remount rw /sdcard
现在,这将使用rw(read-write)权限重新安装/sdcard,现在您可以通过从主机外壳使用以下命令将文件推送到/sdcard中。
`adb push filename.mp3 /sdcard,`
其中filename.mp3可以是您要推送到Android仿真器的任何文件。
希望这可以帮助 :)
ashutosh answered 2019-09-29T18:00:31Z
19 votes
确保模拟器的AVD Manager实用程序中有两件事:
提到了SD卡的大小,例如512。
在“硬件”标签中,按“新建”,然后从下拉菜单中选择“ SD卡支持”。
现在,启动模拟器。 SD卡现在也将支持写入。
Sumit answered 2019-09-29T18:01:14Z
10 votes
Android Studio 0.8.9及更高版本存在创建AVD的错误。
请参阅问题78434。
解决方法
转到.android文件夹中的ADV文件夹并找到您的AVD config.ini
使用可以处理Unix换行符的文本编辑器将其打开。 (由于记事本没有CR-LF,因此它们将一起运行。)
将hw.sdCard=no更改为hw.sdCard=yes
这应该适合新版本中的每个人
afra mehrparvar answered 2019-09-29T18:02:12Z
7 votes
也许听起来很愚蠢,但是当我遇到相同的问题时,它对我有用:删除创建的avd,然后通过AVD Manager使用512MB的SD卡再次创建一个。
检查两者是否都具有正确的权限,如果没有,请尝试使用chmod进行更改。
如果一切仍然失败,请重复该过程,但通过终端手动创建avd和sd卡:
android create avd -n my_avd -t 7
mksdcard -l e 512M mysdcard.img
emulator -avd my_avd -sdcard mysdcard.img
希望有所帮助!
Edu Zamora answered 2019-09-29T18:02:51Z
6 votes
我认为这里的问题是您忘记设置SD卡大小
请按照以下步骤操作:
第一步:关闭正在运行的模拟器
步骤2:打开Android虚拟设备管理器(Eclipse菜单栏)
第三步:选择您的模拟器->编辑->然后设置SD卡大小
这在我的模拟器中效果很好!
tan answered 2019-09-29T18:03:47Z
4 votes
请确保在“创建AVD窗口”中为该特定仿真器指定的SD卡大小值大于零。
Dipin answered 2019-09-29T18:04:12Z
3 votes
挂载-o重新挂载,rw / sdcard
这是使用模拟器重新安装sdcard的正确方法。
teddy answered 2019-09-29T18:04:43Z
2 votes
我为模拟器将sdcard的虚拟内存增加到512 MB,这足够了
user2604908 answered 2019-09-29T18:05:08Z
2 votes
我尝试了@ user2002993很大的帮助,但是在一个地方需要进行一点编辑,所以我进行了编辑,这里介绍了在Android Studio(模拟器android 5)上对我有效的方法。
转到您的adb文件夹,右键单击空白区域,然后选择“在此处打开命令窗口”,或者如果您是通过adb-installer安装adb的,请打开cmd并键入以下命令:
adb devices
它应该显示您的模拟器编号和详细信息。 然后在这里遵循命令:
adb shell
现在它应该显示提示#
su
mount -o rw,remount rootfs
chmod 777 /mnt/sdcard
exit
exit
是的,需要两次退出,现在您的adb shell提示消失了。 将文件放入您的adb文件夹中,并发出此命令,看看是否已修复。
adb push "your file name like : 1.jpg" /sdcard/
要么
adb push "your file name like : 1.jpg" /storage/sdcard/
现在在cmd中它应该显示您的传输时间,而不是令人毛骨悚然的只读内容😊
afra mehrparvar answered 2019-09-29T18:06:06Z
1 votes
我猜您在创建avd时没有插入内存大小。 您可以通过编辑avd来做到这一点。
Suresh Sharma answered 2019-09-29T18:06:31Z
0 votes
确保您具有正确的权限。
esse answered 2019-09-29T18:06:55Z
0 votes
Windows使用反斜杠,Linux使用正斜杠。
nomapp answered 2019-09-29T18:07:20Z
0 votes
有时这可能是非常简单的原因,在eclipse中转到您的列表,并检查是否已设置SDCard大小
answered 2019-09-29T18:07:45Z
0 votes
我在Android L开发者预览版上遇到了这个问题,并且至少在此版本中,我通过创建大小为平方2的sdcard(例如128M,256M等)解决了该问题
Eli answered 2019-09-29T18:08:10Z
0 votes
在adb 1.0.32版和Eclipse Luna(v 4.4.1)中。
我在avd / mnt / media_rw / sdcard中找到一个目录,可以使用adb命令写入该目录。亚行推送{源} / mnt / media_rw / sdcard
似乎可以通过rw访问该目录。
希望这可以帮助 :-)
gregrobinz answered 2019-09-29T18:08:49Z
0 votes
替代方式:卸载驱动器(从设置/存储中)并重新安装sdcard也解决了问题。 (通过将文件从内部存储移动到sdcard进行验证)无论如何,这个简单的方法这次救了我的屁股:)
Raymond Fraikin answered 2019-09-29T18:09:14Z
0 votes
在模拟器中给Sdcard任意大小
取消选中c:\ user ... android \ avd->属性中的只读选项
通过文件资源管理器推送文件
重新启动模拟器
肯定会的
kamleshwer purohit answered 2019-09-29T18:10:04Z
0 votes
最终有了我的帮助在模拟器上运行应用程序管理器并设置存储权限。
momik bęc answered 2019-09-29T18:10:29Z
0 votes
以root身份在终端仿真器中尝试以下操作:
restorecon -v -R /data/media
intrepidis answered 2019-09-29T18:10:53Z