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理器实用程序中有两件事情:
-
SD卡的大小被称为例如512。
-
从硬件标签中,按下新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卡的大小
按照以下步骤使其工作:
- 第一步:closures正在运行的模拟器
- 第二步:打开Android虚拟设备pipe理器(eclipse菜单栏)
- 第三步: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卡)在任何情况下,这个简单的方法救了我的屁股这次:)
- 在模拟器中给任何大小的Sdcard
- 取消选中c:\ user … android \ avd – >属性中的只读选项
- 通过文件浏览器推送一个文件
- 重新启动模拟器
它一定会奏效
与我一起帮助在模拟器中运行应用程序pipe理器并设置存储权限。
以root身份在terminal模拟器中试试这个:
restorecon -v -R /data/media