首页 / 资讯中心 / 文章详情

Eclipse ADT离线包安装全攻略:版本匹配与避坑指南

Eclipse ADT离线包安装全攻略:版本匹配与避坑指南 ★ FEATURED ARTICLE
简介Eclipse ADT 离线安装包面向无法稳定联网、却仍需在 Eclipse 中搭建 Android 开发环境的开发者尤其适合教学机房、内网办公与旧项目维护场景。包内共 18 个文件以 15 个 jar 插件为主体涵盖 ADT 主插件、DDMS 调试监控、NDK、层级查看器与 GL 调试器等组件另含 site.xml 更新站点描述、xsl 与 css 样式文件压缩包约 12.94MB解压后即可通过本地归档方式完成安装。已有 1038 人学习下载说明其在离线部署需求中具备一定参考价值。借助这份资源读者可省去逐一下载插件的麻烦直接获得一套版本统一的 ADT 组件用于创建 Android 项目、可视化编辑 XML 布局、调试应用并管理 SDK目录结构清晰便于按需勾选安装与后续排查依赖问题。1. 老项目接手第一坑Eclipse ADT 离线包到底该装哪一版接手一个维护了七八年的安卓老工程打开压缩包发现里面躺着一份 Eclipse 项目结构.project、.classpath、AndroidManifest.xml一应俱全唯独没有 Gradle 脚本。这时候想把它跑起来绕不开的就是 Eclipse 加 ADT 这套老环境。而真正让人翻车的往往不是代码本身是 ADT 离线包版本和 Eclipse 版本对不上——装完重启菜单里死活不出现 Android 选项或者新建项目时提示 SDK 路径无效。这篇笔记记录的是我在一台干净机器上用离线包把 Eclipse ADT 环境从零搭到能编译、能识别设备、能导出 APK 的完整过程适合需要维护旧安卓工程、又不想折腾在线更新源的开发者。整套流程不依赖任何在线插件市场全部用本地压缩包完成装坏了也有回退办法。2. 装前把环境列清楚JDK、Eclipse 与 ADT 的版本咬合关系2.1 三个组件的版本对应表Eclipse ADT 这套东西最要命的地方在于版本是强耦合的不是随便下个最新版就能拼起来。ADT 本质上是 Eclipse 的一个插件集合它依赖特定版本的 Eclipse 平台 API同时又依赖 JDK 的编译级别。我一般会先把下面这张对照关系确认一遍再动手省得装到一半发现方向错了。组件推荐版本说明JDK1.88u 系列ADT 后期版本对 JDK 9 及以上支持很差编译旧工程用 8 最稳Eclipse4.4 Luna / 4.5 MarsJava EE 版这两个版本与 ADT 23.x 匹配度最高离线包也最容易找ADT 离线包23.0.2 至 23.0.623.x 是最后一批独立 ADT 版本之后官方转向 Android StudioAndroid SDK对应 API 19 至 API 23老工程一般锁在低 APISDK 不必追新这里要强调一点Eclipse 请选Java EE 版本不要选 Java SE 精简版。ADT 安装过程会用到 WST、XML 编辑器等组件精简版缺这些依赖装完插件会报一堆Missing requirement错误。我第一次图省事用了 SE 版结果 ADT 装到 60% 卡住日志里全是找不到org.eclipse.wst.xml.core的提示白白浪费半小时。2.2 目录规划与解压位置离线安装最怕路径里带空格和中文Eclipse 的插件加载器对这类路径处理得并不好。我的习惯是把所有东西放在一个纯英文、无空格的根目录下结构大致如下# 建议的目录结构全部放在 D 盘根目录下 D:/android-dev/ ├── jdk1.8/ # JDK 解压或安装目录 ├── eclipse/ # Eclipse 主程序解压目录 ├── adt-offline/ # ADT 离线包解压目录含 features 和 plugins └── android-sdk/ # Android SDK 目录这段结构不是随便定的。adt-offline单独放是为了后面用 links 方式挂载插件时路径清晰android-sdk独立出来是因为 SDK 体积大、以后可能多个 IDE 共用。JDK 目录名保持jdk1.8这种短名避免某些老脚本里写死路径时出问题。解压工具建议用 7-ZipWindows 自带解压对长路径支持差离线包里有些深层目录会被截断。2.3 环境变量先配好再装在装 Eclipse 之前先把 JDK 的环境变量配到位否则 Eclipse 启动时找不到 JVM会直接弹窗报错退出。# Windows 系统环境变量配置图形界面里逐项添加 JAVA_HOME D:\android-dev\jdk1.8 Path 追加 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin CLASSPATH .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jarJAVA_HOME指向 JDK 根目录而不是bin这是很多新手容易写错的地方Path里追加bin和jre\bin两个路径前者给javac后者给java运行时CLASSPATH开头的.表示当前目录优先老工程编译时偶尔会依赖这个。配完打开新的命令行窗口执行java -version确认输出是 1.8 系列再继续下一步。如果这里显示的是别的版本说明机器上还有别的 JDK 抢了 Path 顺序需要把%JAVA_HOME%\bin挪到最前面。3. 离线安装 ADTlinks 挂载与 dropins 两种落地方式3.1 为什么优先用 links 方式而不是直接覆盖ADT 离线包解压后通常包含features和plugins两个文件夹。最粗暴的做法是把它们直接拷进 Eclipse 安装目录下同名的文件夹里但这样做有两个隐患一是污染 Eclipse 本体以后想卸载或换版本很麻烦二是多个插件混在一起出问题不好定位。我一般用links 方式让 Eclipse 通过一个链接文件去加载外部插件目录本体保持干净。具体做法是在 Eclipse 安装目录下新建links文件夹在里面放一个文本文件比如adt.link内容只有一行# 文件路径D:/android-dev/eclipse/links/adt.link # 内容指向 ADT 离线包解压后的根目录注意路径用正斜杠或双反斜杠 pathD:/android-dev/adt-offline这一行的含义是告诉 Eclipse去D:/android-dev/adt-offline下面找features和plugins。路径结尾不要带斜杠Windows 下用正斜杠最保险。放好之后重启 Eclipse如果配置生效菜单栏会出现Window → Android SDK Manager之类的入口。links 方式的好处是以后要换 ADT 版本只改这一行路径或者换一个离线包目录就行Eclipse 本体一个文件都不用动。3.2 dropins 方式作为备选有些 Eclipse 版本对 links 支持不稳定重启后插件不加载。这时候退而求其次用dropins方式在 Eclipse 目录下找到dropins文件夹把 ADT 离线包解压后的features和plugins直接放进去注意是放文件夹本身不是把里面的 jar 散落进去。# dropins 方式的目标结构 D:/android-dev/eclipse/dropins/ ├── features/ # 来自 ADT 离线包 └── plugins/ # 来自 ADT 离线包放好后同样重启 Eclipse。dropins 的加载优先级比 links 低但胜在兼容性好。两种方式不要同时用否则同一个插件被加载两次会出现菜单重复或者类冲突。我踩过一次这个坑links 没生效我又往 dropins 里塞了一份结果 Android 菜单出现了两遍点哪个都报错最后把 links 文件删掉才恢复正常。3.3 启动参数与 JVM 内存调整ADT 加载后 Eclipse 内存占用会明显上升默认的堆大小跑老工程容易卡死。在 Eclipse 根目录下找到eclipse.ini调整下面几个参数# eclipse.ini 关键片段 -vm D:/android-dev/jdk1.8/bin/javaw.exe -vmargs -Xms512m -Xmx2048m -XX:MaxPermSize512m-vm这一项必须放在-vmargs之前且单独占两行指向具体的javaw.exe这样 Eclipse 就不会去系统 Path 里猜 JDK 版本。-Xmx2048m给堆上限 2G老工程编译时够用-XX:MaxPermSize是 JDK 8 时代的永久代参数ADT 插件类加载量大设 512m 能减少OutOfMemoryError: PermGen space的概率。改完 ini 文件后一定要完全退出 Eclipse 再启动托盘里残留的进程也要结束掉否则参数不生效。4. 配置 SDK 路径与工程编译让 ADT 真正认到工具链4.1 在 Eclipse 里绑定 Android SDKADT 插件装好只是第一步它还不知道 SDK 在哪。打开Window → Preferences → Android在SDK Location里填入D:/android-dev/android-sdk。填完点Apply如果路径正确下面的 SDK 列表会刷出已安装的 API 版本如果列表空白且报错多半是 SDK 目录结构不对或者缺少tools文件夹。SDK 目录的合格结构大致是这样D:/android-dev/android-sdk/ ├── tools/ # 含 adb、emulator 等 ├── platform-tools/ # 含 adb 的新位置 ├── platforms/ # 各 API 版本 └── build-tools/ # 构建工具老版本 SDK 的adb在tools下新一点的在platform-tools下ADT 23.x 两个位置都会找。如果platform-tools缺失设备识别会失败表现为 DDMS 里看不到任何设备。这种情况把platform-tools补上重启 Eclipse 即可。4.2 导入老工程并修正编译目标把老工程导入 Eclipse 用File → Import → Existing Projects into Workspace选中工程根目录。导入后右键工程 →Properties → Android勾选一个 Target API这个 API 必须和工程AndroidManifest.xml里的targetSdkVersion对得上否则会报Unable to resolve target错误。!-- AndroidManifest.xml 里需要关注的几行 -- uses-sdk android:minSdkVersion14 android:targetSdkVersion19 /上面这段表示最低支持 API 14、目标 API 19。Eclipse 里勾选的 Target 要和targetSdkVersion一致SDK 目录里也必须装了对应platforms/android-19。三者缺一工程就会带红色感叹号。我遇到过工程能导入但无法编译的情况查了半天发现是platforms下只有android-23而工程要的是 19补装对应平台后立刻正常。4.3 编译输出与常见构建报错工程配置正确后Project → Build Project应该能产出bin目录下的.apk和classes。如果构建失败先看Problems视图里的第一条错误ADT 的报错经常是连锁的第一条解决了后面一串自动消失。常见的有两类一类是R.java无法生成通常是资源文件里有非法字符或者res目录结构不对另一类是Conversion to Dalvik format failed多半是引用的 jar 包重复或者 JDK 版本不对。# 清理并重建的命令行辅助方式在工程目录下 # 删除 bin 和 gen 目录后让 Eclipse 重新生成 rm -rf bin genbin是编译输出gen是自动生成的R.java所在目录这两个目录删掉后 Eclipse 会在下次构建时重建。注意不要删src和res。这个操作相当于给工程做一次干净重建很多玄学编译错误清一次就好了。5. 避坑排查ADT 离线安装最常见的五类翻车5.1 重启后 Android 菜单不出现现象links 文件放好了Eclipse 也重启了但菜单栏里找不到任何 Android 相关入口。原因links 文件里的路径写错或者 Eclipse 启动时没有读取 links 目录。还有一种可能是离线包解压不完整plugins下缺少核心 jar。解决先确认adt.link里的path指向的目录下确实有features和plugins两个文件夹再检查 Eclipse 启动时是否带了-clean参数第一次挂载插件建议用eclipse.exe -clean启动一次强制刷新插件缓存。如果还不行换 dropins 方式验证离线包本身是否完好。5.2 提示 Missing requirement 无法安装现象用Help → Install New Software走本地归档安装时报一堆Missing requirement安装中断。原因Eclipse 版本是 Java SE 精简版缺少 WST 等依赖组件或者离线包和 Eclipse 大版本不匹配。解决换成 Java EE 版 Eclipse 重新解压或者改用 links/dropins 方式绕过依赖检查。离线包和 Eclipse 的版本对应关系参考第 2 章的表格跨大版本基本装不上。5.3 SDK Location 填了但列表为空现象Preferences 里填了 SDK 路径点 Apply 后没有报错但 SDK 列表一片空白。原因SDK 目录缺少tools或platform-toolsADT 无法识别为有效 SDK或者路径里有中文、空格。解决核对 SDK 目录结构补齐缺失文件夹把 SDK 挪到纯英文无空格路径下重新指定。这个坑很隐蔽因为 ADT 不会明确告诉你缺哪个文件夹。5.4 编译报 PermGen space 内存溢出现象构建大一点的老工程时 Eclipse 直接卡死或弹OutOfMemoryError: PermGen space。原因eclipse.ini里没有设置-XX:MaxPermSize或者设置得太小。解决按第 3.3 节的参数把-XX:MaxPermSize调到 512m-Xmx调到 2048m完全退出 Eclipse 后重启。JDK 8 用的是永久代这个参数还有效如果误装了 JDK 11 及以上这个参数会被忽略甚至报错所以 JDK 版本一定要锁在 8。5.5 设备连上但 DDMS 看不到现象手机用数据线连上电脑系统能识别但 Eclipse 的 DDMS 设备列表里空空如也。原因adb版本和 SDK 不匹配或者adb服务被其他程序占用也可能是手机驱动没装好。解决在命令行执行adb kill-server再adb start-server然后adb devices看是否能列出设备。如果命令行能列出而 Eclipse 看不到说明 Eclipse 用的adb路径不对检查 Preferences 里 SDK 路径是否指向了正确的platform-tools。驱动问题在 Windows 上比较常见设备管理器里如果有黄色感叹号需要单独装厂商驱动。6. 装完怎么验证三步确认环境真的能跑通环境装完不能只看菜单出没出现得用实际动作验证。我一般按下面三步走任何一步不过都说明还有隐患。第一步验证插件加载完整性。打开Help → About Eclipse → Installation Details在Plugins标签页里搜索com.android应该能看到一串 ADT 相关插件数量在十几个以上。如果只有零星几个说明离线包没加载全回第 3 章检查 links 或 dropins 配置。第二步验证 SDK 与工具链连通。打开Window → Android SDK Manager能正常列出已安装和可安装的 API 列表说明 SDK 路径绑定成功。再打开命令行执行# 验证 adb 与 SDK 是否就绪 adb version adb devicesadb version能输出版本号adb devices能列出已连接设备哪怕是空的列表头就说明platform-tools工作正常。如果adb命令找不到说明platform-tools没加进 Path或者 SDK 路径指定错了。第三步跑一次完整构建。随便新建一个 Android Application Project或者导入一个最小老工程执行Project → Build Project确认bin目录下生成了.apk文件。再右键工程 →Run As → Android Application能在模拟器或真机上启动整个链路就算通了。验证项通过标准不通过时先查插件加载Installation Details 里 com.android 插件齐全links/dropins 路径SDK 绑定SDK Manager 能列出 APISDK 目录结构工具链adb version 与 adb devices 正常platform-tools 与 Path构建bin 下生成 apk 且能运行Target API 与 JDK 版本这套验证流程我每次搭完老环境都会强制走一遍因为 ADT 的坑大多是「看起来装好了、实际差一环」。有一次我图快跳过了第三步结果交付时才发现工程能编译但装不上设备回头查是targetSdkVersion和实际 SDK 平台差了一个版本号白白返工。从那以后我每次装完 ADT 都按这三步走完才敢说环境好了。希望帮到你。本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?
咨询建站