故事背景
今日测试一个项目 , 用两个虚拟机互相发短信, 但是死活就是收不到 。 然后想用Emulator Control发短信试试,结果Emulator Control是灰显的,无法使用 。 网上搜索之后 ,不外乎就这几种 ,都试过了还是不行 。 找呀找呀 , 最后终于找到一篇文章 , 说是”ADT版本和SDK版本不兼容引起的” , 根据他的步骤 ,然后试了一下果然奏效。 现在就把他的过程再好好整理一下 , 顺便把这其中学到的知识也添油加醋的加进来。
首先要说明白的是, 是”SDK Tools版本和ADT版本不一致”引起的以上问题。(注意不是SDK版本)
SDK Tools 和ADT的前世今生
- SDK Tools是SDK的一部分,其实就是SDK目录下的tools文件夹 ,主要提供一些开发过程中用到的工具,比如说创建虚拟机、Android调试桥(也即adb)、Dalvik调试监视器服务(DDMS)等等,有没感觉这几个词语很熟悉?对,没错 ,我们在使用Eclipse的时候就会用到这几个工具,在Eclipse上点几下就能用到这些功能。
- 但是刚刚不是明明说着在SDK的Tools文件夹下吗?怎么突然到Eclipse中点点点几下了就用上这些功能了呢? 还记得我们第一次启动Eclipse的时候, 弹出来的一个让我们选择SDK目录的框吗?这就是关联Eclipse和SDK的开始。
- 但是真正让SDK Tools中的工具紧凑一致出现在Eclipse中供开发者使用的 , 其实是ADT这个插件 , 还记得第一次打开Eclipse时他”菊花还在”的样子吗? 为了开发安卓项目, 我们却要为他穿上”ADT”这件盔甲 ,重新启动Eclipse后,它已”菊花不在”…. 所以你们了解了吗?ADT其实就是一个”婊子呀”..额额 …”桥梁”呀 , 将tools中的工具细致有序的显示在Eclipse中,让开发者很方便的创建虚拟机、运行项目然后项目就直接安装到了虚拟机并且自动运行并且在LogCat中输出提示信息…
- 所以当我说”ADT的版本跟SDK Tools的版本是紧密挂钩”的时候, 你们愣了没有?莫急,来看看官方文档。上面几个红圈是想告诉各位看官这部分在官方文档的位置 (授人以鱼不如给钱是吧!!!),最重要的就是 ADT 23.0.6 对应的 “This version of ADT is designed for use with SDK Tools r24.1.2”
- 所以当我说”ADT版本和SDK Tools版本不一致的时候会不会出问题?”你们应该给我回复、回复、回复。。。。。。所以当你出现这种问题的时候 , 你先分别看看自己的ADT版本 和 SDK Tools版本
- ADT版本查看 : Eclipse中 - Help - About Eclipse - Installation Details - Installed SoftWare , 你会看到Android Development Tools(简写ADT) , 后面就是版本
- SDK Tools版本查看 : Eclipse中 - Android SDK Manager , 你会看到Android SDK Tools , 后面的就是版本
- 看完之后就知道版本是否对应了?像我就是因为SDK Tools版本太高了(初始是25.x)。我的ADT版本是23.0.7 , 对应的SDK Tools版本是24.1.2 , 所以就去网上下了个24.1.2的 SDK Tools包(一百多兆 , 所以我一再强调是SDK Tools而不是SDK , 就是因为SDK你下的起吗?\黑人小伙懵比脸)。下载好 、解压缩 , 然后将里面的tools文件夹替换掉你原来sdk目录中的tools文件夹就行了(其实我是先把原来的tools文件夹备份了再替换的) , 重启eclipse问题就解决了。