一.虚拟化的坑
安装安卓虚拟机的时候需要用到CPU的64位虚拟化(不是必须的,但是用了更快),并且CPU的64位虚拟化资源只能给一台虚拟机,我的问题就出在这里,暑假的时候好奇安装了win8自带的虚拟化组件Hyper-v,
然后又安装了2台Linux的虚拟机,这就造成用安卓SDK管理工具安装Extras里面的HAXM(英特尔硬件加速执行管理器)的时候一直不成功,因为墙的原因如果SDK里面HAXM下载不下来,也可以去因特尔官网下
载。HAXM的作用就是如果安装了,在创建安卓虚拟机的时候CPU/ABI选项可以选择因特尔那一个选项,这样以后调试程序的时候通过配置可以让安卓更流畅,至于怎么配置网上教程一大堆。
贴两张图:第一张是我Hyper-v没有卸载时候的虚拟化检测结果;第二张是我Hyper-v卸载之后的虚拟化检测结果。第一个参数是检测系统是否支持64位,第二个参数是否支持硬件数据执行保护(也就是地址扩
展),第三个是系统是否支持VT(也就是64位虚拟化)。ps:有时候可能机器本身支持虚拟化,但是BIOS里面虚拟化默认是关闭的,需要开机的时候进去BIOS把虚拟化开启;Hyper-v卸载控制面板-程序-已安装
windows功能,把Hyper-v卸载。
二.端口占用的坑
在一切配置完之后,就是新建一个项目运行了,当右键项目-运行为-安卓项目之后,在问题窗口抛出三个错误:
The connection to adb is down, and a severe error has occured.
You must restart adb and Eclipse.
Please ensure that adb is correctly located at 'D:\java\sdk\platform-tools\adb.exe'
第一个说是adb没有启动起来,服务发生错误。ADB全称Android Debug Bridge, 是android sdk里的一个工具,用这个工具可以直接操作管理android模拟器或者真实的andriod设备!!它使用的
端口是5037。
对于第一个错误,百度到说直接杀死任务管理器里面的adb进程,在我这不行,压根找不到。然后google说的就是端口占用了,用WIN+R 运行CMD执行这个命令netstat -aon|findstr "5037"查看
端口使用情况,最后一个参数就是占用进程的(id或者pid并没有搞清楚,学linux还是大二的时候了0.0),再用tasklist|findstr "{ID}"查看进程的具体信息,我的结果如下:
kadb.exe在任务管理器里面可以找到,是一个酷狗的进程,有种骂娘的冲动。
,退出某狗,你会
发现这个进程还没有关闭。。。,搞死他。
第二个问题就是重启一下myeclipse了。。。。
第三个是确定那个路径里面adb.exe确实存在,这个确认一下就行了。
然后就是大功告成了,右键项目 运行为安卓项目,apk在我这是可以安装成功0.0
三.墙的巨坑
这个就要好好说了,我发誓这不是我第一次喷,也不会是最后一次喷,上一篇说我用的国内的镜像进行的下载,然后用SDK拉取下来的安装列表并不是很全,有很多安装包根本没有显示,然后创建的虚拟机各种各样问题。因为我一直可以上HG谷歌,想当然的以为都是去谷歌服务器下东西,没啥不一样 也就没有更新host文件,从谷歌上下载的安卓各个版本乱七八糟文件根本不全,有时候Extras列表根本不可选,直到我昨晚更新了host文件,在拉取了一下 心都碎了。
第一张图是更新host之后拉取下来的SDK列表;第二张是SDK一夜下载之后的大小(右键属性太慢了,大概是18G多。。。。);这墙真是万恶的 封的东西莫名其妙
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
因为墙的存在,一个环境配置遇到了各种各样奇葩的问题,学习的过程中慢慢解决,也渐渐对安卓的目录结构 SDK的安装列表 文件夹列表有了进一步的了解,不是学习安卓,真的不会知道虚拟化
资源只能支持一个虚拟化软件(VM,Hyper-v,AVD)。耐心学习,总会进步!!
落霞与孤鹜齐飞,秋水共长天一色。