我尝试编辑android模拟器的主机文件。我按照以下步骤操作:
step1
adb root
step2
adb remount
step3
adb pull /system/etc/hosts .
然后我为客户主机信息添加新行,然后我推送主机文件,我收到一些错误:
step4
adb push hosts /system/etc/hosts
错误信息:
adb: error: failed to copy 'hosts' to '/system/etc/hosts': couldn't create file: Read-only file system
环境信息:
osx ei capitan
android emulator: android 7.1.1
android studio: 2.2.2
答案 0 :(得分:28)
我遇到了同样的问题并使其发挥作用。
运行模拟器:
emulator -avd <EMULATORNAME> -partition-size 512 -writable-system
我相信-writable-system
param是为我修复它的东西。
在另一个终端/ cmd提示符中
adb root
adb -s emulator-5554 remount
adb -s emulator-5554 pull /system/etc/hosts hosts
现在,发挥你的魔力(将IP添加到主机文件)
adb -s emulator-5554 push hosts /system/etc/hosts
其他信息:
adb devices
评论的重要更新:
请在运行adb reboot
之前检查steven关于运行adb root
的评论。
这对于能够从AVD管理器启动模拟器非常重要。
船长建议在推送主机文件后运行adb reboot
以避免黑屏错误。
快乐的调试:)
答案 1 :(得分:2)
推送主机文件后运行adb reboot
,您将不再遇到黑屏问题。
答案 2 :(得分:0)
我遇到其他解决方案的问题,所以我测试了很多,现在我决定写另一个答案,我希望它对其他人有用。
以下是我成功的步骤(第10场胜利的Android Studio):
.\adb.exe reboot -writable-system
(您的模拟器应立即重启).\adb.exe root
.\adb.exe remount
.\adb.exe pull /system/etc/hosts C:\Temp\hosts
.\adb.exe push C:\Temp\hosts /system/etc/hosts
.\adb.exe unroot
在可写系统模式下启动后,无法启动仿真器时出现了非常奇怪的问题,在不执行unroot的情况下生根和停止模拟器。问题是:每当快照失败时,模拟器都会进行冷启动,而主机文件也会消失。在这种情况下,您需要重复所有步骤。