我正在 Android 1.6 (Android SDK 2.1) 下开发。我在 Eclipse 中使用 avd 管理器创建了一个 avd。当我启动这个 avd 时,我发现 /sdcard 目录的权限是“d----------”。所以我无法将文件推送到 SD 卡。
有谁知道如何解决这个问题?
我正在 Android 1.6 (Android SDK 2.1) 下开发。我在 Eclipse 中使用 avd 管理器创建了一个 avd。当我启动这个 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 启动模拟器后,登录到另一个 shell 并输入
adb shell
您应该看到# prompt
显示,这是您的设备(模拟器)外壳。现在,在 adb shell 中键入以下命令。
mount -o remount rw /sdcard
现在,这将在获得许可的情况下重新挂载/sdcard
,现在您可以使用主机 shell 中的以下命令rw(read-write)
将文件推送到其中。/sdcard
`adb push filename.mp3 /sdcard,`
其中 filename.mp3 可以是您想要推送到 Android 模拟器中的任何文件。
希望这可以帮助 :)
在模拟器的 AVD 管理器实用程序中确保两件事:
提到了 SD 卡大小,例如 512。
在硬件标签中,按新建并从下拉菜单中选择“SD 卡支持”。
现在,启动模拟器。SD 卡现在也应支持写入。
Android Studio 0.8.9 及更高版本存在创建 AVD 的错误。
请参阅问题 78434。
解决方法
hw.sdCard=no
为hw.sdCard=yes
这应该适用于新版本中的每个人
我认为这里的问题是您忘记设置 SD 卡大小
请按照以下步骤使其工作:
这在我的模拟器中运行良好!
也许这听起来很愚蠢,但当我遇到同样的问题时它对我有用:删除创建的 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
希望有帮助!
确保您在该特定模拟器的创建 AVD 窗口中为SD 卡大小提供了一个大于零的值。
我尝试了@user2002993 很大的帮助,但它需要在一个地方进行一点编辑,所以我进行了编辑,这里在 Android Studio、模拟器 android 5 上对我有用。
转到您的 adb 文件夹,右键单击空白区域并选择“在此处打开命令窗口”,或者如果您通过 adb-installer open 安装了 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 它应该向您显示传输时间而不是令人毛骨悚然的只读内容
mount -o 重新挂载,rw /sdcard
这是使用模拟器重新安装 SD 卡的正确方法。
我为模拟器将 sdcard 的虚拟内存增加到 512 MB,这就足够了
我猜,您在创建 avd 时没有插入内存大小。您可以通过编辑 avd 来做到这一点。
替代方法:卸载驱动器(从设置/存储)并重新安装 sdcard 也可以解决问题。(通过将文件从内部存储移动到 sdcard 来验证)无论如何,这个简单的方法这次救了我的屁股 :)
在 adb 版本 1.0.32 和 Eclipse Luna (v 4.4.1) 中。
我在 avd /mnt/media_rw/sdcard 中找到了一个目录,您可以使用 adb 命令写入该目录。adb push {源} /mnt/media_rw/sdcard
似乎有对该目录的 rw 访问权限。
希望这可以帮助 :-)
确保您拥有正确的权限。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
我在 Android L 开发者预览版中遇到了这个问题,并且,至少对于这个版本,我通过创建一个大小为 2 平方大小(例如 128M、256M 等)的 sdcard 解决了这个问题
它肯定会起作用
Windows 使用反斜杠,Linux 使用正斜杠。
有时这可能是一个非常简单的原因,在 eclipse 中转到您的列表并检查您是否设置了 SDCard 大小
以 root 身份在终端模拟器中尝试此操作:
restorecon -v -R /data/media
With me in the end helped In the emulator to run applications manager and setting permissions for storage.