zoukankan      html  css  js  c++  java
  • android 下修改 hosts文件 及 out of memory的解决

    因为android模拟器host文件无法修改,导致无法通过域名使用http方法调用内网服务,因此从网上大量转载的一种方法,这种方法:

        1. 通过emulator -avd avdName -partition-size 128 启动模拟器

        2.通过adb root 和 adb remount 命令获得root权限。

        3.通过 adb pull /system/etc/hosts 命令将hosts文件转移到PC上,手动修改hosts,并且通过adb push将hosts文件再推送回去。

         这个问题是因为linux中的换行符和window中的回车换行不一致引起的,网上大部分方法是让利用ultraedit等编辑器直接修改,但是我复制到编辑器上依然无法修改。上贴中的malbers回复说,利用echo命令,可以直接通过命令将需要修改的内容添加到hosts文件中,试了一下,果然可行。

         首先键入 adb shell 命令(新版本的sdk adb命令被转移到了platform-tools目录中),然后echo 192.168.0.246 www.aaa.com>>/system/etc/hosts,敲入上面这条命令后,再使用 cat /system/etc/hosts查看hosts文件修改情况,发现hosts果然已经被修改,但是问题是依然没有换行,貌似只有换行了以后才能被识别,

    因此再次利用echo命令加入了换行符,问题解决。具体操作如下:

         前面几个步骤不变,但是不需要将hosts文件pull到电脑上,如果你已经修改了但是无效,可以先pull出来,还原到原始状态,不要有任何换行,并替换掉

    模拟器上已经修改的hosts,使它回复到原始状态。即只有127.0.0.1 localhost。

        然后进入adb shell , 使用 echo -e \n >> /system/etc/hosts 为hosts文件加入换行符。

        再次使用 echo 192.168.0.246 www.aaa.com >> /system/etc/hosts 。

        这样就完整解决了换行问题。再次在浏览器中敲入www.aaa.com,熟悉的页面也出现了。

    具体步骤如下

    1、获得root权限:adb root

    2、设置/system为可读写:adb remount

    3、将hosts文件复制到PC:adb pull /system/etc/hosts <PC机上文件名>

    4、修改PC机上文件

    5、将PC机上文件复制到手机:adb push <PC机上文件名> /system/etc/hosts

    但在第五步时,有的人会报  out of memory的错误

    这是因为直接用命令行启动,而没加一个参数造成的,所以用下面这个命令来启动就行了

    $emulator –avd youravdname –partition-size 128

    来源于(可能被墙了)

    http://www.cuteandroid.com/tips-for-android-developer-failed-to-copy-file-to-system

  • 相关阅读:
    hive0.13.1安装-mysql server作为hive的metastore
    hadoop2.2集群部署教程连接
    hadoop2.4.1伪分布模式部署
    spring cloud (四、服务消费者demo_consumer)
    spring cloud (三、服务提供者demo_provider)
    spring cloud (二、服务注册安全demo_eureka)
    spring cloud (一、服务注册demo_eureka)
    maven里面pom文件的各标签介绍
    如何删除github里面的项目
    用过的工具列表及作用
  • 原文地址:https://www.cnblogs.com/zhepama/p/3303714.html
Copyright © 2011-2022 走看看