Android Studio 模拟器修改hosts文件的方法 2020.8

因为服务端尚未部署到真正的服务器, 只在本地方便调试。所以安卓访问接口需要修改hosts文件。但是根据网上的很多教程,直接通过adb命令修改并不好用会提示系统文件只读。

adb root
// adbd is already running as root
adb remount
// remount succeeded
adb pull /system/etc/hosts
// [100%] /system/etc/hosts
// 这里对拉取的文件进行修改
adb push hosts /etc/hosts
// adb: error: failed to copy 'hosts' to '/etc/hosts': Read-only file system

 

经过一番摸索,总算找到了解决方案。

起初找到的方案是通过adb shell 进入安卓系统命令行,修改文件系统的只读权限。 但是实际测试发现并没有用。 包括先将文件推送到模拟器的 /sdcard 目录,再通过模拟器命令行复制到系统文件夹等方法均以失败告终。

其实最新的模拟器api已经不允许这样操作了。 正确的方法是:

在模拟器启动的时候增加 可写参数

也就是说,你得先关闭模拟器,然后通过命令行增加启动参数的方式启动模拟器,直接通过Android studio 启动是无法配置参数的。

cd ~/Library/Android/sdk/platform-tools //进入emulator所在的目标文件夹 
emulator -list-avds //列出所有模拟器,方法下一步操作模拟器的名字
emulator -avd Nexus_S_API_24_X86 -writable-system //启动你想要修改的模拟器,其中 Nexus_S_API_24_X86 即为上一步你列出的要启动的模拟器名字

这样启动成功后再通过上面的方法修改就可以了

adb root //root 运行 
adb remount //挂载文件
adb pull /system/etc/hosts //将模拟器hosts文件拉取到宿主机当前目录
// 手动在指定文件夹下(本文中放在桌面)打开host文件修改
adb push ~/Desktop/hosts /system/etc/hosts //将修改完成的hosts文件放到模拟器中。 
adb shell cat /etc/hosts //查看host文件是否修改成功

 

参考:https://stackoverflow.com/questions/41117715/how-to-edit-etc-hosts-file-in-android-studio-emulator-running-in-nougat

posted @ 2020-07-30 10:01  前端小小菜  阅读(2348)  评论(1编辑  收藏  举报