Android模拟器sdcard推送错误:只读文件系统

我正在开发Android 1.6(Android SDK 2.1)。 我通过在Eclipse中使用avdpipe理器来创buildavd。 当我启动这个avd时,我发现/ sdcard目录的权限是“d ———”。 所以我无法推送文件到SD卡。

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

我发现这个作品

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

一旦从一个shell启动了Emulator,请login到另一个shell&type

 adb shell 

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

 mount -o remount rw /sdcard 

这将现在用rw(read-write)权限重新挂载/sdcard &现在您可以通过使用主机shell中的以下命令将文件推入/sdcard

 `adb push filename.mp3 /sdcard,` 

其中filename.mp3可以是任何你想推入Android模拟器的文件。

希望这可以帮助 :)

确保模拟器的AVDpipe理器实用程序中有两件事情:

  1. SD卡的大小被称为例如512。

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

现在,启动模拟器。 SD卡现在也应该支持写入。

Android Studio 0.8.9及以上版本有创buildAVD的错误。

见问题78434 。

解决方法

  • 转到.android文件夹中的ADV文件夹,find您的AVD config.ini
  • 用一个可以处理unix换行符的文本编辑器打开它。 (由于记事本没有CR-LF,它们将一起运行。)
  • hw.sdCard=no更改为hw.sdCard=yes

这应该适用于新版本的每个人

也许这听起来很愚蠢,但当我遇到同样的问题时,它对我很有帮助:删除创build的avd,然后通过带有例如512MB的sd卡的AVD Manager创build一个。

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

如果一切仍然失败,请重复此过程,但通过terminal手动创buildavd和sd卡:

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

希望有所帮助!

我认为这里的问题是你忘了设置SD卡的大小

按照以下步骤使其工作:

  1. 第一步:closures正在运行的模拟器
  2. 第二步:打开Android虚拟设备pipe理器(eclipse菜单栏)
  3. 第三步:select你的模拟器 – >编辑 – >然后设置SD卡的大小

这在我的模拟器中运行良好!

确保在特定仿真器的创buildAVD窗口中为SD卡大小给出了一个大于零的值。

mount -o remount,rw / sdcard

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

我增加了虚拟内存的SD卡高达512 MB的模拟器,这就够了

我试了@ user2002993很大的帮助,但它的一个地方,它需要一个小编辑,所以我编辑和在这里什么对我工作室,模拟器Android 5。 去你的adb文件夹右键单击空白的舞台上,并select“opne命令窗口在这里”,或者如果你安装ADB adb-installer打开cmd并input这些命令(为不误解我做了命令BOLD)

adb设备

“它应该显示你的模拟器号码和详细信息,然后按照这里命令:”

adbshell

“现在它显示你提示#”

mount -o rw,重新装入rootfs

chmod 777 / mnt / sdcard

出口

出口

是的双退出需要..现在你的提示adbshell已经没有了。 把一个文件放到你的adb文件夹中,并给出这个命令,看看它是否被修复

adb push“你的文件名如:1.jpg”/ sdcard /

要么

adb push“你的文件名如:1.jpg”/ storage / sdcard /

现在在cmd它shoudl显示你转移时间,而不是令人毛骨悚然的只读的东西:)

确保您拥有正确的权限。

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

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

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

有时这可能会导致一个非常简单的原因,在eclipse中去你的列表,并检查你是否设置了SDCard大小

我在Android L开发者预览版中遇到了这个问题,至less在这个版本中,我通过创build一个尺寸为2的SD卡(例如128M,256M等)来解决这个问题。

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

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

似乎有rw访问这个目录。

希望这可以帮助 :-)

替代方法:卸下驱动器(从设置/存储),重新安装SD卡也解决了问题。 (通过移动一个文件从内部存储到SD卡)在任何情况下,这个简单的方法救了我的屁股这次:)

  1. 在模拟器中给任何大小的Sdcard
  2. 取消选中c:\ user … android \ avd – >属性中的只读选项
  3. 通过文件浏览器推送一个文件
  4. 重新启动模拟器

它一定会奏效

与我一起帮助在模拟器中运行应用程序pipe理器并设置存储权限。

以root身份在terminal模拟器中试试这个:

 restorecon -v -R /data/media