You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

新安装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路径):
    -vm
    C:\Program Files\Java\jdk1.8.0_291\bin\javaw.exe
    
    保存文件后重启Eclipse,再尝试构建或调试项目。

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

火山引擎 最新活动