Eclipse 上有关 sun/misc/BASE64Encoder 的错误 [重复]

Posted

技术标签:

【中文标题】Eclipse 上有关 sun/misc/BASE64Encoder 的错误 [重复]【英文标题】:Error about sun/misc/BASE64Encoder on Eclipse [duplicate] 【发布时间】:2018-04-23 07:45:47 【问题描述】:

当我在 mac 中运行我的应用程序并显示此消息时 构建过程中发生错误。 在项目“IMPEXP”上运行构建器“android Package Builder”时出错。 sun/misc/BASE64Encoder

但是这个项目在 windows 10 计算机上运行良好,我不使用任何关于 base64Encoder

eclipse 版本:Photon Milestone 3 (4.8.0M3) JRE java se 9.0

编辑!

我在下面找到了类似的东西

!ENTRY org.eclipse.core.resources 4 2 2017-11-09 11:50:09.047
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.core.resources".
!STACK 0
java.lang.NoClassDefFoundError: sun/misc/BASE64Encoder
    at com.android.sdklib.internal.build.SignedJarBuilder.<init>(SignedJarBuilder.java:177)
    at com.android.sdklib.build.ApkBuilder.init(ApkBuilder.java:446)
    at com.android.sdklib.build.ApkBuilder.<init>(ApkBuilder.java:422)
    at com.android.sdklib.build.ApkBuilder.<init>(ApkBuilder.java:362)
    at com.android.ide.eclipse.adt.internal.build.BuildHelper.finalPackage(BuildHelper.java:391)
    at com.android.ide.eclipse.adt.internal.build.BuildHelper.finalDebugPackage(BuildHelper.java:359)
    at com.android.ide.eclipse.adt.internal.build.builders.PostCompilerBuilder.build(PostCompilerBuilder.java:632)
    at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:735)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:206)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:330)
    at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:405)
    at org.eclipse.core.internal.resources.Project$1.run(Project.java:566)
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2240)
    at org.eclipse.core.internal.resources.Project.internalBuild(Project.java:544)
    at org.eclipse.core.internal.resources.Project.build(Project.java:120)
    at com.android.ide.eclipse.adt.internal.project.ProjectHelper.doFullIncrementalDebugBuild(ProjectHelper.java:1143)
    at com.android.ide.eclipse.adt.internal.launch.LaunchConfigDelegate.launch(LaunchConfigDelegate.java:155)
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:885)
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:739)
    at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1039)
    at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1256)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
Caused by: java.lang.ClassNotFoundException: sun.misc.BASE64Encoder cannot be found by com.android.ide.eclipse.base_23.0.7.2120684
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:484)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387)
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
    ... 23 more

【问题讨论】:

查看工作区.metadata目录下的.log文件,看看是否有更详细的消息。 @greg-449 你能解释更多吗?我不知道如何查看 .log 和 .metadata。 ,元数据是您工作区中的一个文件夹。以“.”开头的文件夹已隐藏,因此 Finder 不会显示它们。您可以使用ls -a 命令在终端中查看它。 .metadata 内部是一个名为 .log 的文件,同样它是隐藏的。 less等终端命令可以显示。您还可以在 Eclipse 中使用“错误日志”视图。 @greg-449 我在 .log 中找到了一些东西,你能帮我查一下吗?谢谢! android.googlesource.com/platform/tools/base/+/master/sdklib/… 【参考方案1】:

正如其他人已经指出的那样,这是一个兼容性问题——您需要 Java 8 才能运行 Eclipse。

如果您还没有 JDK 8,请安装它。 在 Eclipse 中,转到 Window > Preferences > Installed JREs。确保 Java 8 出现在列表中并被选中。之后,关闭 Eclipse。 此外,eclipse.ini 还引用了它使用的 Java VM。确保它指向的 VM 是 Java 8(请参阅有关如何找到它以及如何设置 VM 首选项的链接)。 重新启动 Eclipse 并重试。

【讨论】:

【参考方案2】:

您正在使用的 Android 代码正在尝试使用 sun.misc.BASE64Encoder 类。

这个不推荐使用的类已从 Java 9 中删除,因此它不起作用。

您将需要切换回 Java 8 或查找 Android 代码的更新(如果有)。

【讨论】:

这是 Eclipse 本身正在运行的 Java,不是您的项目正在使用的 Java。 Eclipse 至少需要 Java 8。【参考方案3】:

我正在使用 Windows 7。我必须更改首选项和 ini 文件。两者都有 C:\Program Files\Java\jdk-12.0.1\bin,我将其更改为 C:\Program Files\Java\jre1.8.0_221\bin。现在可以了!

【讨论】:

【参考方案4】:

就我而言,这是非常疯狂的事情。 我必须下载eclipse IDE版本NEON

由于该项目几乎从 2014 年开始就已经过时了

附上您需要的 IDE 的 url: Eclipse IDE NEON

我也必须遵循相同的安装步骤

【讨论】:

以上是关于Eclipse 上有关 sun/misc/BASE64Encoder 的错误 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

MyEclipse/Eclipse导入sun.misc.BASE64Encoder jar包步骤

JDK从1.8升级到9.0.1后sun.misc.BASE64Decoder和sun.misc.BASE64Encoder不可用

java-sun.misc.BASE64Decode AccessException

sun.misc.BASE64Encoder找不到jar包的解决方法

sun.misc.BASE64Encoder找不到jar包的解决方法

Andmore 的 Android Package Builder 因与 sun/misc/BASE64Encoder 相关的错误而失败