☰
Eclipse ADT离线包安装全攻略:JDK版本对齐与避坑指南
2026/10/24 2:36:54 网站建设 项目流程

简介:这份 Eclipse ADT 离线安装包面向无法稳定联网、却仍需在 Eclipse 中搭建 Android 开发环境的开发者,尤其适合教学机房、内网办公或旧项目维护等场景,可解决在线安装插件时更新站点失效、依赖下载中断的问题。压缩包共 18 个文件,约 12.94MB,以 15 个 jar 插件为主体,涵盖 ADT 主插件、DDMS 调试、NDK、层级查看器、TraceView 与 GL 调试等模块,另含 site.xml 更新站点描述、xsl 与 css 网页样式文件,结构对应 Eclipse 离线安装所需的 plugins、features 与 web 目录。已有 1038 人学习下载,说明其在旧版 Android 开发环境中仍有实际参考价值。解压后可通过 Archive 方式指向 site.xml 完成本地安装,读者能获得一套可直接导入的完整插件集合,省去逐项查找依赖的麻烦,也便于理解 ADT 各组件的组成与用途。

1. 从一次 JDK 版本翻车说起:Eclipse ADT 离线包到底装的是什么

上周帮一个做安卓老项目维护的朋友收拾环境,他机器上 Eclipse 打开就报No compiler is provided in this environment,控制台一片红,折腾一下午以为是 ADT 插件坏了,最后发现是 JDK 装成了 17,而 Eclipse 和 ADT 这套组合对高版本 JDK 根本不买账。这类翻车在维护存量安卓工程时特别常见——项目还在用 Eclipse + ADT 那套老结构,Android SDK 也是十几年前的 API 级别,新 IDE 打不开、老 IDE 又装不上插件,最后只能回到离线包这条路。

Eclipse ADT 离线包解决的就是这个场景:不依赖在线更新站点,把 ADT 插件本体和依赖一次性落到本地,绕开网络超时、更新站点失效、证书过期这些玄学问题。它适合两类人:一是接手了老安卓工程、必须用 Eclipse 编译的开发者;二是内网或隔离环境里没法访问在线更新源、只能靠离线包搭环境的运维。装不好会怎样?轻则插件装上了但新建项目向导不出现,重则 Eclipse 启动直接崩在 splash 界面,连工作空间都进不去。下面按我实际装过几轮的顺序,把版本、路径、参数和救火办法一次讲清。

2. 装前把版本和环境钉死:JDK、Eclipse、ADT 三者的对应关系

2.1 先确认 JDK 版本,别让高版本 JDK 毁掉整个环境

这套组合最要命的一条:Eclipse 老版本(3.7 到 4.4 这一档)配 ADT 离线包,JDK 必须停在 8,最好就是 1.8.0_202 这类末代 8u 版本。JDK 9 之后模块化改动会让老 Eclipse 的启动器直接找不到tools.jar,表现就是启动报错或者插件加载不全。我一般会先把机器上所有 JDK 列一遍,确认默认java指向哪个:

# 查看当前生效的 java 版本和路径 java -version which java # Linux/macOS 下列出已安装的 JDK 候选 ls /usr/lib/jvm 2>/dev/null /usr/libexec/java_home -V 2>/dev/null # macOS 专用

java -version输出里如果看到17.x或21.x,先别急着往下装,把JAVA_HOME指到 8u 目录,再把$JAVA_HOME/bin放到PATH最前面。Windows 上同理,在系统环境变量里把 JDK8 的bin上移。这里不是建议,是硬约束——ADT 离线包里的ddms、aapt这些工具链对 JDK8 的依赖是写死的,换版本就是给自己挖坑。

2.2 Eclipse 版本怎么选:32 位还是 64 位,经典版还是 EE 版

Eclipse 本身要选Eclipse IDE for Java EE Developers或Eclipse Classic,版本落在 3.7(Indigo)到 4.4(Luna)之间最稳。原因很直接:ADT 离线包的plugins/和features/目录结构是按这一档 Eclipse 的 p2 机制组织的,太新的 Eclipse(4.5 以后)虽然也能塞进去,但插件依赖解析经常出问题,新建 Android 项目时向导图标不出现。

位数要和 JDK 对齐:JDK 是 64 位就下 64 位 Eclipse,混装会出现eclipse.ini里-vm指过去但启动器报Failed to load the JNI shared library。我习惯在下载前先看一眼eclipse.ini里有没有-vm这一行,没有就手动补,指向 JDK8 的javaw.exe(Windows)或java(Linux/macOS)。

组件推荐版本位数要求备注
JDK1.8.0_202 及以下 8u与 Eclipse 一致禁用 9 及以上
Eclipse3.7 Indigo ~ 4.4 Luna64 位优先选 Java EE 或 Classic
ADT 离线包对应 Eclipse 版本的 ADT 23.x无包内需含 plugins/features
Android SDK按项目 target 选无单独解压,路径不含中文

2.3 目录规划:路径里别出现中文和空格

装之前先把目录定好,这一步偷懒后面全是坑。我一般这样规划:Eclipse 解压到D:\dev\eclipse(Linux 下/opt/dev/eclipse),JDK 在D:\dev\jdk8,Android SDK 在D:\dev\android-sdk,ADT 离线包解压到D:\dev\adt-bundle。三个原则:路径全英文、不含空格、不放在Program Files这种带空格的系统目录下。ADT 在解析 SDK 路径时对空格的处理很粗糙,路径带空格会出现 SDK 列表里明明配了却显示空的情况。

3. 离线包落地:解压、放置、改 eclipse.ini 的完整动作

3.1 离线包的结构先看清楚再动手

拿到 ADT 离线包后先别急着往 Eclipse 里塞,解压出来看一眼结构。标准的离线包(不管是 zip 还是已经拆好的目录)应该包含plugins/和features/两个目录,plugins/下能看到com.android.ide.eclipse.adt_*.jar、com.android.ide.eclipse.ddms_*.jar这类文件。如果解压出来只有一个大 jar 或者一堆散文件,那多半是打包方式不同,需要按下面的 dropins 方式处理。

# 解压离线包并查看结构(Linux/macOS) unzip ADT-23.0.2.zip -d /opt/dev/adt-bundle ls /opt/dev/adt-bundle # 期望看到 plugins 和 features 两个目录 ls /opt/dev/adt-bundle/plugins | head

Windows 下用解压工具解到D:\dev\adt-bundle即可。确认plugins里有com.android.ide.eclipse.adt开头的 jar,这是 ADT 的核心插件,没有它后面全白搭。

3.2 两种安装方式:dropins 目录 vs 覆盖 plugins

离线包装进 Eclipse 有两条路,我按场景选:

方式一:dropins 目录(推荐,可回退)。在 Eclipse 安装目录下建dropins/adt/,把离线包的plugins和features整个拷进去,形成dropins/adt/plugins、dropins/adt/features的结构。Eclipse 启动时会自动扫描 dropins 并加载。好处是卸载时直接删dropins/adt目录就行,不污染主安装。

# 在 Eclipse 目录下建 dropins 子目录并放入离线包内容 mkdir -p /opt/dev/eclipse/dropins/adt cp -r /opt/dev/adt-bundle/plugins /opt/dev/eclipse/dropins/adt/ cp -r /opt/dev/adt-bundle/features /opt/dev/eclipse/dropins/adt/

方式二:直接覆盖主 plugins/features。把离线包内容合并进 Eclipse 根目录的plugins和features。这种方式加载优先级高,但出问题时不好回退,得手动删文件。我一般只在 dropins 方式加载不出来时才用这招兜底。

不管哪种方式,放完后要清一次 Eclipse 的配置缓存,否则它可能还按旧状态启动:

# 删除 Eclipse 的配置缓存,强制重新扫描插件 rm -rf /opt/dev/eclipse/configuration/org.eclipse.update # 注意:不要删整个 configuration 目录,只删 update 子目录

org.eclipse.update里存的是插件更新状态,删掉后 Eclipse 下次启动会重新构建插件注册表。这一步是很多「装了没反应」问题的解药。

3.3 eclipse.ini 里补 -vm 参数,锁死 JDK

Eclipse 默认会去PATH里找java,机器上装了多个 JDK 时它可能挑错。稳妥做法是在eclipse.ini里显式指定:

# eclipse.ini 片段,-vm 必须单独一行,路径单独一行 -vm D:/dev/jdk8/bin/javaw.exe

Linux/macOS 下写成/opt/dev/jdk8/bin/java。注意-vm和路径必须分两行写,写在同一行 Eclipse 不认。这个参数要放在-vmargs之前,放后面会被当成 JVM 参数忽略。改完保存,这是后面所有验证的前提。

4. 配置 Android SDK 与 ADT 偏好:让插件真正认到工具链

4.1 在 Eclipse 里指定 SDK 位置

Eclipse 重启后,菜单Window → Preferences → Android,在SDK Location里填 Android SDK 的解压路径,比如D:\dev\android-sdk。填完点Apply,如果下面列表能刷出已安装的 API 平台和构建工具版本,说明路径认对了;如果列表空白但路径没错,八成是 SDK 目录结构不对——android-sdk下应该有platforms、platform-tools、build-tools这几个子目录,缺了就是 SDK 没解压完整。

这一步的常见做法是先把 SDK 单独解压好、确认platform-tools里有adb,再去 Eclipse 里配。顺序反了容易在偏好页里看到一堆红叉却不知道从哪查。

4.2 DDMS 和 adb 的路径校验

ADT 依赖adb做设备调试,偏好页里Android → DDMS可以看adb路径。如果这里显示找不到,手动指到android-sdk/platform-tools/adb.exe。Linux 下还要确认adb有执行权限:

chmod +x /opt/dev/android-sdk/platform-tools/adb /opt/dev/android-sdk/platform-tools/adb version # 能输出版本号说明 adb 本身可用

adb version能出版本号,说明 SDK 这一层是通的,剩下就是 Eclipse 插件层的事。这个分层排查思路后面排错会反复用到:先确认命令行工具能用,再查 IDE 集成。

4.3 新建项目向导验证插件是否加载

配置完偏好,直接走一遍File → New → Android Application Project。如果这个菜单项存在、点进去能填包名和目标 API,说明 ADT 插件已经正常加载。如果菜单里根本没有 Android 相关项,回到第 3 章检查 dropins 结构和org.eclipse.update缓存是否清过。这一步是插件层最直接的验收,比看日志快。

5. 避坑与排查:五条装 ADT 离线包时真踩过的坑

5.1 现象:Eclipse 启动卡在 splash 或直接闪退

原因通常是 JDK 版本不对或eclipse.ini的-vm写错。先看 Eclipse 目录下的configuration/*.log,里面会写明加载哪个插件时失败。解决:把-vm指到 JDK8 的javaw.exe,确认路径存在且分两行写,再清configuration/org.eclipse.update后重启。

5.2 现象:插件放进 dropins 了,但新建项目里没有 Android 项

原因是 dropins 目录层级不对。Eclipse 要求dropins/adt/plugins和dropins/adt/features这种结构,如果直接把plugins里的 jar 平铺到dropins/根下,部分版本不认。解决:按 3.2 的结构重建目录,删缓存重启。另一个可能是离线包版本和 Eclipse 版本差太远,换对应版本的包。

5.3 现象:偏好页里 SDK 路径填了但列表空白

原因是 SDK 目录不完整或路径含空格/中文。解决:确认android-sdk下有platforms、platform-tools、build-tools;把 SDK 移到纯英文无空格路径;重启 Eclipse 再填一次。我遇到过路径里有个中文文件夹名,改完立刻正常,这种问题查日志是查不出来的。

5.4 现象:adb 能用但 Eclipse 里设备列表空

原因是adb版本和 DDMS 期望的不一致,或者 5037 端口被别的进程占了。解决:命令行adb kill-server再adb start-server,看端口占用用netstat -ano | findstr 5037(Windows)或lsof -i:5037(Linux/macOS),把占用进程处理掉再重启 Eclipse。

5.5 现象:编译报No compiler is provided

原因就是第 1 章说的 JDK 版本问题,Eclipse 用的 JRE 不是 JDK,或者 JDK 是 9 以上。解决:Window → Preferences → Java → Installed JREs里确认指向的是 JDK8 的目录(不是 JRE 目录),且勾选为默认。改完 clean 一次项目再编译。

6. 装完怎么验证跑通:三步验收和一个我坚持的习惯

装完不能只看 Eclipse 能打开就算完,得走一遍完整链路才算数。我一般按三步验收,每步都有明确的通过标准。

第一步,插件层验收。Eclipse 启动后Help → About Eclipse → Installation Details,在Plug-ins标签页里搜com.android.ide.eclipse.adt,能看到版本号且状态正常,说明插件注册成功。同时File → New菜单里有Android Application Project,这一层就过了。

第二步,工具链层验收。在 Eclipse 里打开Window → Show View → Other → Android → Devices,能看到设备视图;命令行adb devices能列出设备或显示空列表但不报错。再在偏好页Android里确认 SDK 列表刷出了至少一个 API 平台。这一步过了,说明 ADT 和 SDK 之间的路径是通的。

第三步,编译层验收。新建一个最小 Android 项目,target 选 SDK 里已有的 API 级别,直接Run As → Android Application。能走到编译完成、生成 apk(哪怕没有设备可部署,编译通过即可),说明 JDK、ADT、SDK 三者协同没问题。编译报错就回到第 5 章按现象对号入座。

# 验收时顺手确认 apk 是否真的产出了 find /path/to/workspace -name "*.apk" -newer /path/to/workspace -type f # 能列出刚生成的 apk 路径,说明编译链路完整

这三步里任何一步卡住,都按「命令行工具先通、再查 IDE 集成」的顺序往回倒,别一上来就重装 Eclipse。重装是最贵的排查手段,放在最后。

从那以后我每次装这套环境,都强制先跑一遍java -version和adb version两个命令,确认底层工具链没问题再动 Eclipse,省掉了一大半返工。这套离线包的价值就在于把在线源的不可控因素拿掉,剩下的就是版本对齐和路径干净这两件事,照着上面的顺序走,基本一次能通。希望帮到你。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询