news 2026/9/20 5:27:33

Eclipse + ADT 时代 Android 环境搭建与迁移指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Eclipse + ADT 时代 Android 环境搭建与迁移指南

简介:这份《Android开发环境搭建实验报告》面向刚接触移动开发的初学者与高校实验课学生,聚焦从零配置开发工具链这一常见难点。报告完整记录了Java JDK、Eclipse、Android SDK与ADT的下载安装及环境变量配置过程,并延伸至HelloAndroid项目的新建、构建目标选择、AVD创建与模拟器运行调试,最后附上「Failed to fetch URL…」报错改用HTTP方式解决的排错思路,可作为实验课提交参考或自学对照清单。资源为单个pdf文档,压缩包约650KB,篇幅紧凑、步骤连贯,适合打印或随时翻阅。目前已有113人学习,便于读者在动手搭建时快速定位每步的配置细节与验证方法。

1. 从一份实验报告说起:Eclipse + ADT 时代的 Android 环境由哪几块拼起来

现在新建 Android 项目基本是 Android Studio 一条龙,但如果你手上正好有一份按 Eclipse + ADT 路线写的实验报告,或者要维护一个 2012 年前后立项的老工程,硬套新工具链反而容易卡在构建目标、SDK 版本和目录结构上。这套环境其实就四块积木:编译 Java 的 JDK、承载插件的 Eclipse、提供平台 API 与构建工具的 Android SDK、把前两者粘起来的 ADT 插件。四块拼不齐,报错往往出现在看起来完全不相干的地方——比如 SDK 没进 Path,却在 Eclipse 里报 Android 项目无法编译。下面按实际动手顺序把这四块拆开,每一处都给出验证命令,以及当年最容易翻车的几个点。

2. JDK 与 Android SDK 的路径规划、环境变量分层与安装验证

2.1 安装目录先定死,后面所有路径都从它推导

Windows 上装 JDK 最容易出的问题不是装不上,而是装到了C:\Program Files\Java\jdk1.8.0_xxx这种带空格的路径里。带空格本身不致命,但CLASSPATHPath里拼路径时忘记加引号,命令行解析就会断在空格处,表现为javac找不到tools.jar。我的习惯是统一放到盘根目录下的短路径,比如D:\dev\jdkD:\dev\android-sdk,版本变更时只改环境变量,不动其他配置。

Eclipse 不用安装,下载的是压缩包,解压到D:\dev\eclipse即可。这一点和实验报告里写的一致——它是绿色版,卸载等于删目录,所以别和其他 IDE 混放在同一个文件夹。

2.2 JAVA_HOME、Path、CLASSPATH 三者分工不同

很多人把三个变量混着填,结果java -version能用,javac却不行。它们的分工是这样的:

变量名典型值作用不配的后果
JAVA_HOMED:\dev\jdk供其他工具反查 JDK 根目录Eclipse、Ant、Gradle 找不到编译器
Path%JAVA_HOME%\bin让 java、javac、jar 全局可调用只能在 bin 目录下执行命令
CLASSPATH.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar指定类库搜索路径编译期报 cannot find symbol

注意CLASSPATH最前面那个点号,代表当前目录。漏掉它,javac编译当前目录下的类时会找不到自己写的源文件——这是新手最常撞的一堵墙。实验报告里让加libdemo路径,demo目录在部分 JDK 发行版里并不存在,加了也无妨,但真正必须的是dt.jartools.jar

改完环境变量,务必新开一个命令行窗口再验证,老窗口读的是旧环境块:

# 验证 JDK 是否就位,两条都要有输出 java -version javac -version # 打印生效的 classpath,确认点号和 jdk 路径都在 echo %CLASSPATH% # 直接调用绝对路径下的工具,排查 Path 是否真的生效 "%JAVA_HOME%\bin\javac" -version

Linux 或 macOS 上对应的是在~/.bashrc里写:

export JAVA_HOME=/opt/dev/jdk export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar # 让配置立即生效,避免重新登录 source ~/.bashrc

export写完后必须source一次,否则当前 shell 里还是不认。判断顺序也重要:PATH里 JDK 的 bin 要放在系统自带 java 之前,不然java -version会显示系统的旧版本。

2.3 Android SDK 的目录结构与 tools 的定位

从 SDK 官网下载的安装包解压后,会看到几个关键目录:tools(含androidddmsemulator等命令行工具)、platform-tools(含adbfastboot)、platforms(各 API 等级的平台 jar)、add-ons。当年实验报告只提了tools,但实际开发中platform-tools更重要,因为adb在这里。

把两个目录都塞进 Path:

# Windows 下在系统变量 Path 中追加两段(末尾要带反斜杠前的分号分隔) D:\dev\android-sdk\tools;D:\dev\android-sdk\platform-tools # 验证工具链是否全部可见 android -h adb version emulator -list-avds

android -h输出的是 SDK 管理器帮助,说明tools生效;adb version打印出 Android Debug Bridge 版本号,说明platform-tools生效。这两条如果只有一条能跑,就是 Path 里漏了一段。SDK 初次运行时会在tools下生成android.bat(Windows)或android(类 Unix),如果提示找不到,检查是否误删了解压后的tools\lib目录。

3. ADT 插件安装、SDK 路径绑定与 Failed to fetch URL 排错

3.1 在线站点安装和离线 zip 安装两条路

ADT 装进 Eclipse 有两种方式。在线方式是在Help → Install New Software → Add,站点名称随意,地址填 ADT 的更新站点,然后一路 Next 接受协议、重启 Eclipse。这条路依赖网络,站点证书或网络出口一变动就会失败,而且中途卡住很难判断是下载慢还是根本连不上。

更稳的是离线包:下载 ADT 的 zip,Help → Install New Software → Add → Archive,直接选中 zip 文件。离线包安装快、可重复,团队里几个人配环境时把同一个 zip 传一遍就行。装完后重启,菜单栏出现Window → Android SDK and AVD Manager,菜单里还能看 Android 图标,就说明插件挂上了。

装不上时先看两个地方:Help → About Eclipse → Installation Details里有没有 Android Development Toolkit;Help → Eclipse Marketplace里搜 ADT 是否显示已安装。两者都没有,多半是 Eclipse 版本和 ADT 不匹配,ADT 对 Eclipse 的版本相当敏感,版本错位时表现是装完无报错但菜单不出现。

3.2 把 SDK 路径绑到 Eclipse 上

插件装好只是第一步,Eclipse 还不知道 SDK 在哪。走Window → Preferences → Android,在SDK Location里选择D:\dev\android-sdk,点 OK。

# 绑定成功后,Eclipse 会在 SDK 目录下读写这些文件,可用于反向确认 ls D:/dev/android-sdk/platforms # 应列出已安装的 API 等级,如 android-10 ls D:/dev/android-sdk/platform-tools # 应包含 adb.exe / adb

如果 SDK Location 填了但列表里Target Name是空的,说明 SDK 里一个平台都没装。回到 SDK 管理器勾选 API 10(对应 Android 2.3.3),安装完成后再回来,列表就会出现Android 2.3.3

提示:Preferences 里的 SDK 路径建议用绝对路径并避免中文目录,Eclipse 插件在解析中文路径时偶发乱码导致识别不到平台。

3.3 Failed to fetch URL 的成因与处理顺序

实验报告里记的那条错误——SDK 安装时报Failed to fetch URL...——是这套环境里出现频率最高的一个。它的直接原因是 SDK 管理器拉取仓库清单或包体时,TLS 握手失败、返回的清单格式不被旧版本解析,或者网络出口把请求拦掉了。表现通常是进度条卡在Fetching然后弹出红色叉号,本地sdk/temp目录里留下半截文件。

处理顺序建议固定成这样,从代价最小的开始试:

# 1. 先看是不是缓存脏了:清掉 temp 与缓存清单后重试 rm -rf D:/dev/android-sdk/temp rm -f D:/dev/android-sdk/repository.xml # 2. 在 SDK 管理器的 Settings 里勾选 Force https://... to be fetched using http:// # 也就是把清单请求从加密端口换到明文端口,绕过握手失败 # 3. 换用命令行触发,报错信息比图形界面详细 android update sdk --no-ui --filter platform-tools,android-10 # 4. 仍然失败就确认时间和出口:系统时间偏差过大会直接导致证书校验不通过 date

实验报告里给出的解法正是第 2 步:把 HTTPS 换成 HTTP。这个开关能生效的原因是旧版 SDK 管理器对自签证书和中间拦截比较敏感,走明文端口反而绕开了这层校验。代价是传输不再加密,所以它适合内部网络或一次性拉取,不适合长期作为默认配置。第 3 步的命令行方式值得单独练一下,--filter后面的包名可以从android list sdk --all的输出里抄,--no-ui让它不进交互界面,便于写进脚本批量铺环境。

3.4 装完 ADT 后必须回头做的一次校验

插件、SDK、路径三者都到位后,回到Preferences → Android,如果已安装平台出现在列表里且没有黄色警告三角,链路就是通的。这一步没做就往下一步走,后面创建项目时会看到Project has no target,然后被迫回来重查,反而更慢。另一个检查点是Window → Preferences → Android → DDMS,确认adb路径被自动填上了,没有的话手动指向platform-tools\adb.exe

4. HelloAndroid 工程创建、AVD 建立与 DDMS 调试链路

4.1 新建工程时四个字段别随手填

File → New → Project → Android → Android Application Project,弹出的向导里有几个字段决定了工程能不能跑起来:

字段示例值说明
Project nameHelloAndroid工程名,同时决定默认包名后缀
Build TargetAndroid 2.3.3 / API 10编译时用的平台 jar,来自已安装的 platforms
Min SDK Version8 或 9允许运行的最低 API,低于它设备上直接装不上
Package namecom.example.helloandroid应用唯一标识,发布后不可更改

Build Target 选得比 Min SDK 高是正常的——用高版本编译、允许低版本运行。反过来把 Min SDK 设得比 Build Target 还高,ADT 会直接拒绝。工程建好后 ADT 会自动生成srcresAndroidManifest.xmlR.java,其中R.java是自动生成的资源索引,不要手动改,也不要提交到版本库。

# 工程目录确认:AndroidManifest.xml 和 res/ 必须同级存在 ls HelloAndroid # src res assets AndroidManifest.xml project.properties default.properties

project.properties里记录着target=android-10,这个值可以被android update project命令重写,是后期换编译版本的入口。

4.2 用命令行创建 AVD,比图形界面更适合复现

实验报告里是在 AVD Manager 图形界面里新建 AVD:API 10、SD 卡 2G。图形界面点几下就行,但如果要多台机器配同样的模拟器,命令行更好复现:

# 查看已有 AVD 和可用的 target 列表 android list avd android list targets # 新建一个 API 10 的 AVD,SD 卡 2G,屏幕用 HVGA android create avd -n AVD_API10 -t android-10 -c 2048M -s HVGA # 启动模拟器 emulator -avd AVD_API10

参数逐个说:-n是 AVD 名称,后续emulatoradb都靠它定位;-t指定目标平台 ID,必须来自android list targets的输出,写错名称会提示 target 不可用;-c是 SD 卡镜像大小,2048M对应报告里的 2G,也可以用-c D:\avd\sdcard.img指向已有镜像;-s是屏幕分辨率,HVGA 是 320x480,模拟器启动快、占用小。首次启动冷启动可能两三分钟,卡在开机动画属于正常,别急着关。

4.3 adb 把 apk 推上去,同时在命令行看日志

模拟器起来后,Eclipse 里Run → Run As → Android Application会自动编译、安装、启动。想脱离 IDE 验证产物是否真装进去了,走 adb:

# 确认设备被识别,模拟器通常显示为 emulator-5554 adb devices # 安装工程编译出的 apk adb install -r bin/HelloAndroid.apk # 按包名启动主 Activity adb shell am start -n com.example.helloandroid/.HelloAndroidActivity # 只看本应用日志,按 tag 过滤,避免被系统日志刷屏 adb logcat -s HelloAndroid:V # 抓取完整日志到文件,事后慢慢看 adb logcat -d > hello.log

-r表示覆盖安装,重复调试时省掉手动卸载;am start里的-n后面是包名加 Activity 名,写成包名/包名.Activity的形式;logcat -s是只保留指定 tag,HelloAndroid:V表示 tag 为 HelloAndroid 且级别不低于 Verbose,级别从低到高是 V、D、I、W、E、F、S。日志刷不停的时候先adb logcat -c清空缓冲,再启动应用,看到的就都是本次运行产生的。

4.4 DDMS 面板实际在看什么

把 Eclipse 视图切到 DDMS(Window → Open Perspective → DDMS),四个面板各管一段:Devices 列出连接的设备和进程,可以选中进程点Stop强杀、点Dump抓堆;LogCat 就是上面adb logcat的图形版,右键可以保存和导入;File Explorer 能直接浏览设备文件系统,/data/data/包名/下是该应用的私有目录,调试数据库和 SharedPreferences 时非常直观;Emulator Control 用于向模拟器发短信、模拟来电和注入 GPS 坐标,测电话相关逻辑时不需要真机。

注意:File Explorer 里对/data的操作依赖 root 权限,模拟器默认可以,真机零售版通常不行,写文件前先确认目录权限,否则会看到只读报错。

5. 迁到 Android Studio 的验证方法与老工程的兼容处理

老环境搭起来是为了跑通,但真要长期改代码,还是得迁到 Android Studio。迁移本身不难,难在迁完要确认功能没变。先看目录结构差异,心里有数再动手:

项目Eclipse + ADTAndroid Studio
构建描述project.properties / build.xmlbuild.gradle + settings.gradle
源码位置src/app/src/main/java/
资源位置res/app/src/main/res/
清单文件根目录 AndroidManifest.xmlapp/src/main/AndroidManifest.xml
依赖方式libs/ 下放 jardependencies 块声明

导入时选File → New → Import Project,指向 Eclipse 工程根目录,向导会生成 Gradle 脚本。关键动作是打开生成的build.gradle,把minSdkVersiontargetSdkVersion显式写死,别依赖默认值:

android { defaultConfig { // 和老工程的 project.properties 保持一致,避免行为漂移 minSdkVersion 9 targetSdkVersion 10 } // 旧工程若用了 support 库,需在 dependencies 中显式声明版本 }

导入后常见两类报错:一是R符号找不到,多半是AndroidManifest.xml里的包名和build.gradleapplicationId不一致;二是资源命名冲突,老工程里res目录下的图片名带了大写字母或短横线,新构建系统不允许,改名即可。

最后一步是验证产物。用./gradlew assembleDebug编译出 apk,再用同一套 adb 命令装到之前那个 AVD 上:

# 编译并确认输出路径 ./gradlew assembleDebug ls app/build/outputs/apk/debug/ # 装到老模拟器上跑一遍,和 Eclipse 时期行为对比 adb install -r app/build/outputs/apk/debug/app-debug.apk adb shell am start -n com.example.helloandroid/.HelloAndroidActivity adb logcat -s HelloAndroid:V

装得上、起得来、日志里主流程的 tag 顺序和 Eclipse 时期一致,迁移就算验完了。如果只想改老工程的一两行又不想装完整工具链,直接用adb installaapt dump badging app-debug.apk看包名和版本号,比开 IDE 快得多。

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/20 5:27:10

Windows禁用笔记本内置键盘:PS/2与USB方案及i8042prt驱动详解

1. 为什么会有禁用内置键盘这种需求1.1 一个看似冷门但实际高频的场景笔记本用久了,键盘出问题是迟早的事。我经手过的机器里,最常见的就是几个键位失灵、按键卡死、或者液体泼溅之后某个区域持续触发。这时候外接一把USB键盘就能继续用,但内…

作者头像 李华
网站建设 2026/9/20 5:26:53

3DEC在岩土工程危岩体滑动与孤石运动模拟中的应用

1. 项目背景与核心问题从事岩土工程模拟的同仁们应该都遇到过这样的场景:在边坡稳定性分析中,那些看似孤立的危岩体或孤石往往成为整个工程安全评估的关键难点。传统极限平衡分析法在面对这类离散块体运动问题时常常力不从心,而3DEC作为一款专…

作者头像 李华
网站建设 2026/9/20 5:25:28

25kV铁路供电系统Matlab建模与仿真分析

1. 项目背景与核心价值25kV交流电铁路牵引供电系统是现代电气化铁路的主流供电方案,其核心优势在于能够实现长距离、大功率的电能传输。这套系统通过接触网将高压交流电输送至电力机车,经过车载变压器降压后驱动牵引电机。在日本JR EH800系列货运机车的应…

作者头像 李华
网站建设 2026/9/20 5:25:25

LibreChat自托管部署实战:多模型AI对话聚合平台配置与避坑指南

1. 为什么我最终把日常AI对话工作流迁到了LibreChat最早接触LibreChat是在一个自部署爱好者的小圈子里,当时大家讨论的核心痛点很一致:市面上的AI对话工具要么是纯云端SaaS,聊天记录、API Key、模型配置全都托管在别人的服务器上;…

作者头像 李华
网站建设 2026/9/20 5:24:40

ChatGPT桌面版安装报错与config.toml修复全指南

我见过太多人下载 ChatGPT 桌面版之后,一晚上都耗在“安装未完成”上。好不容易装好了,又发现会话列表里躺着一条“无法加载 config.toml,因此此对话串无法继续”的报错,界面直接卡住。很多人这时候第一反应是“是不是我账号有问题…

作者头像 李华
网站建设 2026/9/20 5:22:48

OpenResearch 实操指南:用开放标准与轻量工具链构建可复现研究流程

1. 为什么我要认真聊聊 OpenResearch 这件事第一次看到 OpenResearch 这个词,是在一个做科研工具的朋友群里。有人甩了张截图,说“以后查文献、跑实验、整理数据可能真不用来回切十几个网页了”。我当时的第一反应是:又是一个套壳聚合站&…

作者头像 李华