新安装Eclipse调试Android应用时遇sun/misc/BASE64Encoder类找不到错误
解决Eclipse Android构建错误:sun/misc/BASE64Encoder 找不到
我之前踩过这个坑,其实问题根源很明确:你用的ADT插件版本(23.0.7)依赖的sun.misc.BASE64Encoder类,在Java 9及以上版本里已经被移除了——Java 9开始采用模块化架构,这类内部API不再对外公开,所以插件找不到这个类才抛出了NoClassDefFoundError。
下面是几种可行的解决办法,按推荐程度排序:
1. 降级到Java 8(最稳妥的方案)
旧版ADT是完全针对Java 8开发的,降级后能彻底解决这个兼容性问题,步骤如下:
- 先下载并安装Java 8 JDK(一定要是JDK,不是JRE,因为编译Android项目需要完整的JDK工具)
- 配置Eclipse全局使用Java 8:
打开Window > Preferences > Java > Installed JREs,点击Add选择Standard VM,找到你Java 8的安装目录,添加完成后勾选它设为默认JRE。 - 检查并调整项目的JRE配置:
右键你的kvizorama项目,选择Properties > Java Build Path > Libraries,如果JRE System Library不是Java 8,点击Edit按钮更换为刚才配置的Java 8 JRE。 - 让Eclipse本身运行在Java 8上:
找到Eclipse安装目录下的eclipse.ini文件,在-vmargs这一行之前添加以下内容(把路径换成你自己Java 8的javaw.exe路径):
保存文件后重启Eclipse,再尝试构建或调试项目。-vm C:\Program Files\Java\jdk1.8.0_291\bin\javaw.exe
2. 升级ADT插件(适合较新的项目)
如果你的项目能兼容更高版本的ADT,可以尝试升级插件来解决依赖问题:
- 打开
Help > Install New Software,点击Add按钮,输入ADT的官方更新站点地址:https://dl-ssl.google.com/android/eclipse/ - 在列表中勾选所有Android Development Tools相关的组件,点击
Next跟随向导完成安装,重启Eclipse后重新构建项目。
注意:有些非常老旧的Android项目可能会因为ADT升级出现其他配置问题,需要额外调整项目的构建参数或依赖。
3. 手动添加依赖(仅应急,不推荐长期使用)
这个方法是绕过Java模块化的限制,虽然能临时解决问题,但可能带来后续的稳定性风险,仅作为最后备选:
- 找到Java 8安装目录下的
rt.jar文件,右键项目选择Properties > Java Build Path > Libraries > Add External JARs,把这个jar添加到项目依赖中。 - 或者在Eclipse的启动参数里添加:
--add-modules java.base --add-exports java.base/sun.misc=ALL-UNNAMED,不过这个需要修改eclipse.ini或者项目的运行配置,操作繁琐且后续Java版本更新可能失效。
内容的提问来源于stack exchange,提问作者an-arhos




