Android Emulator sdcard推送错误:只读文件系统

时间:2010-01-18 03:16:37

标签: android-emulator

我在Android 1.6(Android SDK 2.1)下开发。 我在Eclipse中使用avd manager创建了一个avd。 当我启动这个avd时,我发现/ sdcard目录的权限是“d ---------”。 所以我无法将文件推送到SD卡。

有谁知道如何解决这个问题?

20 个答案:

答案 0 :(得分:129)

我发现这件作品

$./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

答案 1 :(得分:48)

从一个shell启动模拟器后,登录到另一个shell&输入

adb shell

您应该看到显示# prompt,这是您的设备(模拟器)shell。现在,在adb shell中键入以下命令。

mount -o remount rw /sdcard

现在,/sdcard允许rw(read-write)同时重新安装/sdcard现在,您可以使用主机shell中的以下命令将文件推送到`adb push filename.mp3 /sdcard,`

{{1}}

其中filename.mp3可以是您想要推送到Android模拟器中的任何文件。

希望这会有所帮助:)

答案 2 :(得分:19)

确保仿真器的AVD管理器实用程序中有两件事:

  1. 提到SD卡大小,例如512。

  2. 从硬件标签中,按新建,然后从下拉菜单中选择“SD卡支持”。

  3. 现在,启动模拟器。 SD卡现在也支持写作。

答案 3 :(得分:10)

Android studio 0.8.9及更高版本有一个创建AVD的错误。

请参阅Issue 78434

解决方法

  • 转到.android文件夹中的ADV文件夹,找到您的AVD config.ini
  • 使用可以处理unix换行符的文本编辑器打开它。 (记事本会将这些线路连在一起,因为它们没有CR-LF。)
  • hw.sdCard=no更改为hw.sdCard=yes

这适用于新版本中的每个人

答案 4 :(得分:7)

也许这听起来很愚蠢但是当我遇到同样的问题时它对我有用:删除创建的avd并通过AVD Manager再次创建一个SD卡,例如512MB。

检查两者是否具有正确的权限,如果没有,请尝试使用chmod更改它们。

如果一切仍然失败,请重复此过程,但通过终端手动创建avd和SD卡:

android create avd -n my_avd -t 7
mksdcard -l e 512M mysdcard.img
emulator -avd my_avd -sdcard mysdcard.img

希望有所帮助!

答案 5 :(得分:6)

我认为这里的问题是你忘记设置SD卡尺寸

按照以下步骤使其正常工作:

  1. step1:关闭正在运行的模拟器
  2. step2:打开Android虚拟设备管理器(eclipse菜单栏)
  3. 第3步:选择您的模拟器 - >编辑 - >然后设置SD卡大小
  4. 这在我的模拟器中运行良好!

答案 6 :(得分:4)

确保您在特定模拟器的“创建AVD”窗口中为 SD卡大小指定了大于零的值。

答案 7 :(得分:3)

mount -o remount,rw / sdcard

这是使用模拟器重新安装SD卡的正确方法。

答案 8 :(得分:2)

我将SD卡的虚拟内存增加到512 MB,这对于模拟器来说已经足够了

答案 9 :(得分:2)

我试过@ 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中,它显示你转移时间而不是令人毛骨悚然的只读事物

答案 10 :(得分:1)

我猜,你在创建avd时没有插入内存大小。你可以通过编辑avd来做到这一点。 screenshot

答案 11 :(得分:0)

以root身份在终端仿真器中尝试此操作:

restorecon -v -R /data/media

答案 12 :(得分:0)

随着我的到来帮助 在模拟器中运行应用程序管理器 并设置存储权限。

答案 13 :(得分:0)

  1. 在模拟器中为Sdcard提供任何大小
  2. 取消选中c:\ user ... android \ avd - >中的只读选项。特性
  3. 通过文件浏览器推送文件
  4. 重启模拟器
  5. 一定会有效

答案 14 :(得分:0)

替代方式: 卸下驱动器(从设置/存储中)并重新安装SD卡 还解决了这个问题。 (通过将文件从内部存储器移动到SD卡来验证) 无论如何,这个简单的方法这次保存了我的屁股:)

答案 15 :(得分:0)

在adb版本1.0.32和Eclipse Luna(v 4.4.1)中。

我在avd / mnt / media_rw / sdcard中找到了一个可以使用adb命令写入的目录。 adb push {source} / mnt / media_rw / sdcard

似乎有rw访问此目录。

希望这会有所帮助: - )

答案 16 :(得分:0)

我在Android L开发者预览版上遇到了这个问题,至少对于这个版本,我通过创建一个尺寸为2平方尺寸(例如128M,256M等)的SD卡解决了这个问题。

答案 17 :(得分:0)

有时这可能是一个非常简单的原因, 转到eclipse中的列表并检查是否已设置SDCard大小

答案 18 :(得分:0)

Windows使用反斜杠,linux使用正斜杠。

答案 19 :(得分:0)

确保您拥有正确的权限。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />