关于Eclipse上的sun / misc / BASE64Encoder的错误

时间:2017-11-10 06:15:13

标签: java eclipse base64 eclipse-photon

当我在mac中运行我的应用程序时,显示此消息 enter image description here 构建期间发生错误。 项目“IMPEXP”上运行构建器“Android Package Builder”的错误。 太阳/杂项/ BASE64Encoder

但是这个项目在windows 10计算机上工作正常,我没有使用任何关于base64Encoder

版本:光子里程碑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

5 个答案:

答案 0 :(得分:3)

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

  • 如果您还没有JDK 8,请安装它。
  • 在Eclipse中,转到窗口&gt;偏好&gt;已安装的JRE 。确保Java 8出现在列表中并被选中。之后,关闭Eclipse。
  • 此外,eclipse.ini还引用了它使用的Java VM。确保它指向的VM是Java 8(请参阅有关如何查找它以及如何设置VM首选项的链接)。
  • 重启Eclipse并重试。

答案 1 :(得分:1)

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

这个已弃用的类已从Java 9中删除,因此无法使用。

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

由于该项目几乎是2014年的老项目

附加所需的IDE的URL: Eclipse IDE NEON

enter image description here

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

答案 4 :(得分:0)

解决方案:进入java 8 sdk fodler,从jre\lib\rt.jar复制到sdklib.jar(它在eclipse文件夹中的某处)类(具有相同的路径):

<块引用>

sun/misc/BASE64Decoder.class,
sun/misc/BASE64Encoder.class,
sun/misc/CharacterDecoder.class,
sun/misc/CharacterEncoder.class

就这些