我正在Android 1.6(Android SDK 2.1)下进行开发。
我通过在Eclipse中使用avd管理器创建avd。
当启动此avd时,我发现/ sdcard目录的权限是" d ---------"。
因此,我无法将文件推送到sdcard。
有谁知道如何解决这个问题?
试试这个:stackoverflow.com/questions/2083709/
我发现这个作品
$./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
mount:rootfs不能在fstab中用户挂载
su无法用于非根设备
从一个外壳启动仿真器后,登录到另一个外壳并键入
adb shell
您应该看到显示的# prompt,这是您的设备(仿真器)外壳。现在,在adb shell上键入以下命令。
mount -o remount rw /sdcard
现在这将获得具有rw(read-write)权限的/sdcard重新挂载&现在您可以通过从主机外壳使用以下命令将文件推送到/sdcard中。
`adb push filename.mp3 /sdcard,`
其中filename.mp3可以是您要推送到Android仿真器的任何文件。
希望这可以帮助 :)
即使重新安装不起作用,也请查看链接是否正确。那是sdcard -> mntsdcard。如果链接正确,请检查目录mntsdcard的权限。如果没有必要的权限,请发出chmod命令来执行此操作。例如,# chmod 0777 mntsdcard应该可以工作。 PS:您通常不需要执行权限。
我和@Hissain有相同的问题。我能够使其代替以下命令使用它们:mount -o rw,remount rootfs和chmod 777 mntsdcard。希望这可以帮助。
su:找不到...安装:权限被拒绝
确保模拟器的AVD Manager实用程序中有两件事:
提到了SD卡的大小,例如512。
在"硬件"标签中,按"新建",然后从下拉菜单中选择" SD卡支持"。
现在,启动模拟器。 SD卡现在也将支持写入。
硬件标签在哪里?我在"编辑Android虚拟设备(AVD)"中没有看到
我看到仅在命令行上创建的avds的硬件标签。
Android Studio 0.8.9及更高版本存在创建AVD的错误。
请参阅问题78434。
解决方法
转到.android文件夹中的ADV文件夹并找到您的AVD config.ini
使用可以处理Unix换行符的文本编辑器将其打开。 (由于记事本没有CR-LF,因此它们将一起运行。)
将hw.sdCard=no更改为hw.sdCard=yes
这应该适合新版本中的每个人
感谢您的链接,这帮助了我。现在推荐的解决方案是找到您的AVD config.ini,并将hw.sdCard = no更改为hw.sdCard = yes。这对我有用。
是的,那就是新的解决方案。不客气:)非常高兴它帮助你。是的,这是很好的解决方案。因为只要这个问题持续存在,任何人都无法使用所有这些linux代码:)
正因为如此,我才迷失了多少时间...非常感谢!
也许听起来很愚蠢,但是当我遇到同样的问题时,它对我有用:删除创建的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
希望有帮助!
@AnkitSrivastava您应该在终端中执行此命令(以我为例,为bash)。
不需要重新创建AVD,只需重新启动它即可。
是。创建其他类型的AVD的作品。谢谢。这也解决了另一个问题。现在我可以使用相机了。
我认为这里的问题是您忘记设置SD卡大小
请按照以下步骤操作:
第一步:关闭正在运行的模拟器
步骤2:打开Android虚拟设备管理器(Eclipse菜单栏)
第三步:选择模拟器->编辑->然后设置SD卡大小
这在我的模拟器中效果很好!
请确保在"创建AVD窗口"中为该特定仿真器指定的SD卡大小值大于零。
挂载-o重新挂载,rw / sdcard
这是使用模拟器重新安装sdcard的正确方法。
我尝试了@ 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中它应该向您显示传输时间而不是令人毛骨悚然的只读内容
和我不幸的是.. android studio版本8.10及更高版本,改变了一点工作室结构给出此错误...我用Studio 8.09测试,没有这样的只读错误google应该解决这个问题
我为模拟器将sdcard的虚拟内存增加到512 MB,这足够了
我猜您在创建avd时没有插入内存大小。您可以通过编辑avd来做到这一点。
我在Android L开发者预览版上遇到了这个问题,并且至少在此版本中,我通过创建大小为平方2的sdcard(例如128M,256M等)解决了此问题
以root身份在终端仿真器中尝试以下操作:
restorecon -v -R /data/media
在adb 1.0.32版和Eclipse Luna(v 4.4.1)中。
我在avd / mnt / media_rw / sdcard中找到了一个目录,您可以使用adb命令写入该目录。
亚行推送{源} / mnt / media_rw / sdcard
似乎可以通过rw访问该目录。
希望这可以帮助 :-)
替代方式:
卸载驱动器(从设置/存储中)并重新安装sdcard
也解决了问题。 (通过将文件从内部存储移动到sdcard进行验证)
无论如何,这个简单的方法这次救了我的屁股:)
Windows使用反斜杠,Linux使用正斜杠。
在模拟器中给Sdcard任意大小
取消选中c: user ... android avd->属性中的只读选项
通过文件资源管理器推送文件
重新启动模拟器
肯定会的
确保您具有正确的权限。
最终有了我的帮助
在模拟器上运行应用程序管理器
并设置存储权限。
有时这可能是非常简单的原因,
在eclipse中转到您的列表,并检查是否已设置SDCard大小