简介Eclipse ADT离线包是专门面向无法稳定联网或处于内网环境中的Android开发者的插件安装包可将Eclipse快速扩展为完整的Android IDE。压缩包共18个文件总容量12.94MB主体为15个jar插件辅以site.xml、site.xsl、site.css等元数据与样式文件。其中site.xml描述插件更新站点与依赖关系plugins目录下的jar插件涵盖ADT核心编辑器、DDMS设备调试、NDK原生开发、Traceview性能分析等模块features目录则提供功能特性定义便于Eclipse准确识别与安装。该包整合了ADT 21.1.0版本的核心组件支持可视化布局设计、Java代码编辑、应用调试、设备监控以及Android SDK Manager集成并提供层级视图查看与GL调试等进阶工具覆盖从界面到性能的完整开发链路使开发者无需联网即可创建项目、设计界面、测试应用并完成SDK平台管理。资源已获得1038人次学习下载适合网络受限的实验室、内网办公或个人开发者快速搭建Android开发环境。1. Eclipse ADT 离线包解决的不是安装是卡死在半路的绝望网上搜“Eclipse ADT 离线包”“Eclipse安装ADT”的人多半不是没装过而是装到一半心态崩了进度条卡在某个百分比不动等二十分钟报个 network connection 错误换镜像重试又败在依赖解析上。折腾一晚上插件没进去Eclipse 反而被搞得不稳定。这套离线包的价值就在这把 ADT 插件整体打包成 zip通过本地归档方式装进 Eclipse绕开在线更新站点的连接与校验环节。适合三类人——要维护老 Android 工程的开发者、照着旧教程复刻课程 Demo 的学生、以及单纯用不惯 Android Studio 的 Eclipse 老用户。它解决的是“能不能顺利装上”的问题而不是“教你写 Android”。2. 先理顺版本关系ADT、Eclipse、JDK、SDK 的配合逻辑2.1 ADT 到底是什么为什么老 Android 开发还绕不开它ADTAndroid Development Tools不是一个独立软件而是塞进 Eclipse 的一组插件集合。它管这些事情Android 工程的创建向导New Android Application Project、XML 布局的可视化预览、SDK Manager 和 AVD Manager 的图形入口、DDMS 调试工具、以及把 Java 字节码转成 dex 的构建链路。早期 Android 开发几乎是 Eclipse 加 ADT 的代名词后来官方把重心切到 Android Studio 上ADT 插件就不再有大版本更新了。但这不等于它没用。很多存量项目的配套文档、CI 脚本、构建命令还是围绕 Eclipse 环境写的新工具链打开老工程经常遇到 Gradle 版本不兼容、依赖仓库解析失败这种问题。ADT 的优势是“所见即所得”的本地构建不需要联网拉一堆依赖配上本地 SDK 就能编译。所以直到今天还会有人在新机器上复现老环境而第一步就是装上 ADT。ADT 的依赖链条其实不难理解ADT 是 Eclipse 插件运行在 JVM 上它启动时要连接 Android SDK 的 platform-tools 目录去调 adb、aapt 这些工具创建 AVD 时要读 SDK 里已安装的 platform 镜像。任何一个环节对不上症状就千奇百怪——有的连菜单都不出现有的出现了菜单但新建工程按钮是灰的还有的在构建时才报 SDK 路径错误。2.2 动手前先核对Eclipse、JDK、ADT 的版本匹配清单装 ADT 之前先搞清楚版本组合这是整个流程里最值得花时间的 10 分钟。版本不匹配的症状非常隐蔽比如插件装上了、菜单出现了但一创建工程就报“Unable to load class com.android.ide.eclipse.adt.internal.project.AndroidProject”这种教科书式错误。常见做法是先确认三个组件的对应关系ADT 版本匹配 Eclipse 版本匹配 JDK 版本备注22.xEclipse 3.7Indigo/ 4.2JunoJDK 1.6 及以上最老的一批工程常用API 16 左右23.0.4Eclipse 4.2 / 4.3KeplerJDK 1.7当年很稳的版本老教程出现频率高24.2.0Eclipse 4.4Luna/ 4.5MarsJDK 1.7 / 1.8ADT 最后的正式版本覆盖 API 22我一般会用 Eclipse 4.4Luna配 ADT 23.0.4这个组合在 Windows 和 Linux 上都很稳内存占用也低。非要追新用 Eclipse 4.6 以上版本去装 ADT反而容易碰上一堆“插件找不到兼容的依赖”的报错因为 ADT 的 feature 描述文件里声明的 Eclipse 版本上限已经不覆盖新版了。JDK 方面也容易踩坑高版本 JDK 编译老工程时会遇到 javac 参数不识别或者字节码版本过高的问题装完 ADT 后在“编译器”级别那里要手动设 1.7。还有一点Eclipse 本身是 64 位还是 32 位决定了 ADT 能识别的 adb 是哪个Windows 上如果 Eclipse 是 32 位而 SDK 里只装了 64 位的 platform-tools有时会莫名连不上设备。2.3 为什么离线包是更稳的选择在线安装的三个典型翻车现场在线安装 ADT 的流程是Eclipse 先解析更新站点索引再根据索引逐个下载 feature 包最后校验依赖关系。这套机制放在十多年前没问题但现在用起来有三个典型的翻车现场。第一是更新站点本身已经失效或移入归档区请求直接超时进度条卡在 0% 或者 30% 不动。第二是依赖校验阶段Eclipse 会尝试拉取所有关联插件的在线更新信息这个环节经常因为某一个小插件的元数据损坏而整体失败。第三是部分网络环境下Eclipse 默认连接到站点上的重定向地址连接被重置后还会留下一个损坏的本地缓存导致下次安装依然失败。离线包把整个“下载-解析-校验”链路都搬到本地安装过程只需要从 zip 里读取 features 和 plugins 两个目录。安装时唯一可能出问题的环节只剩本地 zip 完整性校验而这一步在选文件时就会暴露。所以对于 ADT 这种老插件离线安装不是备选方案而是最省心的主方案。下载资源里也会附一份安装说明但核心原理就是离线包 修正了依赖关系的完整插件集安装器只需要把它们复制进 Eclipse 并注册即可。3. 走一遍完整安装离线包安装流程与关键参数设置3.1 准备离线包和 Eclipse解压、目录规划与前置检查先把环境弄干净再开始装。Eclipse 解压到一个没有中文、没有空格的路径下比如D:\dev\eclipse避免后续 SDK 路径解析出怪问题。离线包我建议放在 Eclipse 目录外的一个独立文件夹比如D:\dev\adt-offline防止装完以后不小心把 zip 当工程文件误操作。接下来确认 JDK 和 Eclipse 位数是否一致。我一般是先看 Eclipse 安装目录下有没有eclipse.ini打开看一眼内容重点确认里面有没有-vm配置然后在命令行验证 JDK 可用性java -version javac -version echo %JAVA_HOME%逻辑说明java -version确认的是运行时版本javac -version确认编译版本Eclipse 用的是自己内嵌的 JDT 编译器但 ADT 在构建 Android 工程时会回调 JDK 的javac所以两个命令都必须正常输出。echo %JAVA_HOME%在 Windows 下展示环境变量如果这个变量没有设置ADT 在解析某些第三方库时可能报“Cannot find System Java Compiler”那就不只是安装的问题了。参数说明-vm是 Eclipse 启动时要使用的 JVM 入口指向javaw.exeWindows 下无控制台窗口版本比指向java.exe更省心。路径里的空格要用引号包住路径分隔符用正斜杠这是 eclipse.ini 的老规矩。如果这里配置错了Eclipse 会直接闪退或者提示“Failed to create the Java Virtual Machine”。准备好之后再验证离线包本身。用解压工具打开 zip目录结构应该是这样的adt-bundle-offline/ features/ com.android.ide.eclipse.adt_x.x.x.jar com.android.ide.eclipse.ddms_x.x.x.jar plugins/ com.android.ide.eclipse.adt_xxx.jar com.android.ide.eclipse.ddms_xxx.jar org.eclipse.andmore_xxx.jar逻辑说明features目录里是插件的功能定义plugins目录里才是实际执行的代码。如果 zip 里只有一个 plugins 目录没有 features安装器会报“No repository found”或者能读列表但装不上。这一步只要提前看了后面基本不会翻车。3.2 从 Help Install New Software 走完安装启动 Eclipse顶部菜单走Help Install New Software弹出安装窗口后点右上角的Add按钮这一步是关键分水岭在Name里随便填一个比如ADT Offline在Location里点到Archive弹出文件选择框选到你放的离线包 zip 文件注意不是选解压后的目录Contact all update sites during install to find required software这个勾一定要取消这是整个离线安装里最容易忽略的一步留着它 Eclipse 依然会尝试联网查依赖网不好就卡死在 checking requirements 阶段。点 OK 之后安装列表会刷新。正常情况会出现一个分类名字类似Development Tools展开里面是Android DDMS、Android Development Tools、Android Hierarchy Viewer、Android Traceview这几项。全选、点 NextEclipse 会算依赖。因为离线包的 feature 元数据里已经写好依赖关系这一步基本上秒过。再下一步是 License 许可协议逐条看一遍选中同意。这里有个很经典的坑协议页里经常会混着一个Android Studio相关的统计组件名字里带 Statistics如果不想要单独取消那一个的勾选省得后台启动时多开一个数据上报线程。最后点 FinishEclipse 开始安装右下角进度条走完后会提示“Software installed, restart now”直接选重启。重启时 Eclipse 可能要花将近一分钟做插件缓存重建这是正常的。这里给一个提示提示安装过程中如果弹出“Unable to read repository at ...”、找不到任何组件先回去重新检查 3.1 里的目录完整性验证八成是 zip 的问题不是流程问题。3.3 配置 SDK 位置与创建 AVD让 ADT 真正“活”起来装完插件只是第一步不配置 SDKADT 就是个空壳。重启后打开Window Preferences在左侧树里找到Android一项右侧会有一个SDK Location输入框填 Android SDK 的实际路径。填完之后点旁边的ApplyEclipse 会扫描这个目录里的 platform 版本列表里会显示已安装的 Android API 级别。这里要额外说一句SDK 目录里至少要同时存在platform-tools含 adb.exe和你需要编译的platforms\android-xx子目录。如果只装了 SDK Tools 没装 platform-toolsPreferences 里会一直报“This Android SDK requires a newer SDK Tools version”。用 SDK Manager 补装即可或者直接把另一个环境里的 platform-tools 目录拷过来也能救急。配置完 SDK 之后创建一个模拟器验证整个链路。打开Window Android Virtual Device Manager选 New 创建 AVD参数说明如下参数项推荐设置说明Device根据目标分辨率选Nexus 4 之类老 API 级别下选默认样例即可Target已安装的 Android API 版本建议选 API 22 以下老镜像兼容性最好CPU/ABIarmeabi-v7a 优先x86 镜像在模拟器里更快但老镜像时有兼容问题SD Card200 MB 以上有些老应用启动时写外部存储启用快照建议勾选再次启动模拟器会快很多创建完成后点 Start启动参数里我一般会加一个-gpu swiftshader_indirectAndroid 模拟器里这个参数能用软件渲染代替 GPU 直通避免在仅有集显的机器上启动黑屏或花屏。如果启动报“HAXM is not installed”说明 x86 加速没配退回 armeabi-v7a 或者另行安装虚拟化支持即可。3.4 验证安装状态窗口、菜单与控件三重确认装完之后很多人不确定到底成没成功别只看“进度条走完了”就以为万事大吉。我习惯按三个层次验证一遍。第一看 Window 菜单是否出现Android SDK Manager、Android Virtual Device Manager两个入口。第二File New Other 的向导列表里展开Android分类确认能看到Android Application Project。第三命令行输入adb devices确认模拟器或真机被识别。adb devices逻辑说明这个命令能列出当前连接的 Android 设备列表如果之前通过 3.3 创建了 AVD 并启动这里应该出现一个emulator-5554字样的设备。如果没有模拟器可能还在启动中或者 adb 服务没起来先执行adb kill-server再执行adb start-server重置服务层。三件事都确认没问题这套 ADT 环境就算落地了。之后新建 Hello World 工程跑一次编译整个链路从工程向导到 dex 打包就齐了。4. 避坑清单ADT 离线安装常见问题与排查记录4.1 选了 zip 后提示“No repository found”现象Install New Software 里 Add Archive 选完 zip点 OK 后列表区直接红字“No repository found”整个过程不到一秒钟就失败了。原因最常见的是 zip 文件不完整或者是从网上下载时被跳转到了一个 HTML 错误页另一种可能是这个 zip 是用压缩软件二次打包的丢失了第一层目录结构。Eclipse 解析不到content.jar或artifacts.jar就会直接判定“这不是一个合法的软件仓库”。解决用 7-Zip 打开 zip第一层目录下必须能看到features和plugins两个文件夹。如果看到的是类似adt-bundle-offline/features这种嵌套目录那是把整个工程目录打了包需要先解压进入真正的 features 所在层级重新选择那一层作为 Archive 来源。换句话说Archive 选的是包含 features 的那一层不是最外层的文件夹。4.2 装完重启Window 菜单里没有 Android 入口现象安装过程完全正常进度条走完也提示重启但重启后 Window 菜单里找不到 Android SDK ManagerNew Other 里也没有 Android 分类。原因Eclipse 在启动时读取的插件注册表是缓存的没检测到新复制进去的插件。ADT 这种历史悠久的插件虽然在安装时注册了但 Eclipse 的 osgi 缓存有时没刷新。其次还有可能是 eclipse.ini 里配置的 JVM 版本和插件编译版本不一致插件类加载失败后直接被静默跳过。解决先用-clean参数强制清理缓存启动。临时处理直接从命令行进 Eclipse 目录执行eclipse -clean如果这样能出现菜单说明是缓存问题。长期方案是在 eclipse.ini 末尾默认加一行-clean代价是每次启动都会重建插件索引启动慢几秒但对老环境维护很值得。如果加了-clean依然没有去 Help About Eclipse Installation Details 里看插件列表搜android关键词确认插件是否真的在列表里。列表里有但菜单不出现那就是插件被禁用或类加载失败考虑换 ADT 版本。4.3 离线安装还卡在“Checking Dependencies”现象zip 解析正常组件列表也能勾选点 Next 之后进度条开始走但卡在某个百分比不动过几分钟报 Network connection problems 错误。原因离线包安装本身不依赖网络但 Eclipse 安装器在算依赖时仍会尝试访问它认为“可能提供补充插件”的站点勾选 Contact all update sites 只是最明显的一个开关。有时候这个开关没勾Eclipse 的 p2 框架还是会去找本地缓存里记录的旧站点。解决除了取消勾选在线更新选项外我一般会在 eclipse.ini 里加一个 JVM 参数-Djava.net.preferIPv4Stacktrue把网络栈锁定在 IPv4避免 p2 框架在 IPv6 回环解析上浪费超时时间。另一个操作是把 Workbench 中Preferences Network Connections改成 Direct 模式不经过系统代理设置。做完这两个设置再回到 Install New Software 重新装一遍卡依赖的情况基本就消失了。4.4 启动时弹“An error occurred while automatically populating the Quick Access”现象Eclipse 能启动但一进入工作台就弹一个红色错误框内容提示 Quick Access 填充失败点击详情会看到某个com.android.ide.eclipse开头的插件栈信息。原因ADT 和 Eclipse 自带的命令面板插件在“命令补全”这个特性上有冲突。老版本 ADT 的扩展点声明方式没有被新 Eclipse 完全兼容导致 Quick Access 组件在遍历命令列表时碰到异常。这不会让 ADT 直接不可用但每次启动弹错误很烦人。解决打开 eclipse.ini在文件末尾加上-Dorg.eclipse.ui.workbench.noDragAndDroptrue不一定有用我实测有效的是调整启动时加载的视图。Window Perspective Reset Perspective 重置一下当前透视图错误通常不再出现。如果还弹把 eclipse.ini 里-XX:MaxPermSize相关参数调到 512M因为插件清单解析需要更多方法区内存PermGen 不足也会触发这类奇怪错误。4.5 SDK Location 填了正确路径还是报找不到 adb现象Preferences Android 里 SDK Location 填的路径千真万确Apply 后却提示软件需要更高的 SDK Tools 版本或者构建工程时直接报“Could not find adb”。原因SDK Tools 和 platform-tools 是两个独立目录。只下载了 SDK Tools 不会自动给 platform-tools而这个目录里的 adb、aapt 才是 ADT 真正调用的程序。另外 SDK 目录的权限问题也不少见Windows 下把 SDK 放在C:\Program Files下时Eclipse 没有写权限无法创建 cache 文件也会间接导致 adb 识别失败。解决先确认platform-tools\adb.exe文件本身存在不存在就用 SDK Manager 补装。存在还是报错的话在系统环境变量PATH里加入 platform-tools 路径命令行测试执行adb version能正常输出。最后把 SDK 目录挪出系统受控目录放到D:\Android\Sdk这样的位置并右键属性确认当前用户有完全控制权限。这一套走完后Preferences 里的错误提示会消失。5. 装完以后做一次反向导出你的环境也能变成离线包5.1 反向导出从已装好的环境打包 features 和 plugins在 3.4 验证通过之后这台机器上的 Eclipse 目录结构里其实已经有了一份“活”的离线包。与其等下次换电脑再从头搜资源不如手动导出一份属于自己的离线包。切到 Eclipse 安装目录执行下面的命令查看 ADT 相关组件find features -maxdepth 1 \( -name *android* -o -name *ddms* \) -type d find plugins -maxdepth 1 \( -name *com.android.ide.eclipse* -o -name *ddms* \) -type f逻辑说明第一条命令列出 features 目录下的组件目录名第二条列出 plugins 目录下的插件 jar 文件。find用括号把两个匹配条件并起来避免漏掉命名里不带 android 但属于调试工具链的文件。执行结果里应该出现com.android.ide.eclipse.adt、com.android.ide.eclipse.ddms等条目。有了清单把这两个目录里对应用的子目录和 jar 复制到一个临时目录保持features/和plugins/的相对结构压缩成 zip。压缩时要注意 zip 包内第一层就是features和plugins不要在外层再套一个总目录否则安装时要多选一层。这个 zip 就是一份完全自洽的离线包里面附带了你实测可用的插件版本比网上流传的未知来源包更可控。5.2 导出后在新机器复现验证离线包方案是否成立导出后别急着删环境我一般会在另一台机器上走一次完整安装来验证这个包“成立”。流程就是第 3 章那套通过 Archive 指向 zip、取消在线更新勾选、安装、重启、配置 SDK Location、创建 AVD、编译 Hello World。如果新机器上能一次通过这个离线包就可以长期保存。验证过程中有一种典型失败现象进度条走完了但提示“Cannot complete the install because one or more required items could not be found.”这时说明反向导出时漏了一个被依赖的插件。解决方法是回看第 5.1 的 find 结果打开原来环境里的features目录把名称里带org.eclipse.andmore之类的组件也一并复制进去。ADT 的某些附属插件命名不在android关键词里很容易漏。这套“导出-重装”的习惯我是吃过大亏之后才养成的。之前帮一个同事搭环境图省事只拷了 plugins 目录、没带 features那台机器反复失败四次最后才发现是导出方式的问题。从那以后我每次往网盘里放一份离线包都要强制先走一遍“新机器重装验证”几十次下来再没翻过车。Eclipse 装 ADT 本身不难难的是把它变成一个可以反复复现、不带网络依赖的固定资产希望这篇文章能帮你省下几个晚上的折腾。本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?