Ошибка о sun/misc/BASE64Encoder в Eclipse

когда я запускаю свое приложение на Mac и показываю это сообщение введите здесь описание изображения Во время сборки возникли ошибки. Ошибки при запуске компоновщика «Android Package Builder» в проекте «IMPEXP». солнце/разное/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

person Zoe    schedule 10.11.2017    source источник
comment
Посмотрите файл .log в каталоге .metadata рабочей области, чтобы узнать, есть ли более подробное сообщение.   -  person greg-449    schedule 10.11.2017
comment
@ greg-449 не могли бы вы объяснить подробнее? Я не знаю, как смотреть .log и .metadata.   -  person Zoe    schedule 13.11.2017
comment
метаданные — это папка в вашем рабочем пространстве. Папки, начинающиеся с '.' скрыты, поэтому Finder их не покажет. Вы можете увидеть это в Терминале с помощью команды ls -a. Внутри .metadata находится файл с именем .log, опять же, он скрыт. Команды терминала, такие как less, могут отображать его. Вы также можете использовать представление «Журнал ошибок» в Eclipse.   -  person greg-449    schedule 13.11.2017
comment
@greg-449 greg-449 я нашел кое-что в .log, не могли бы вы проверить меня? Благодарность!   -  person Zoe    schedule 13.11.2017
comment
android.googlesource.com/platform/tools/base/+/master/sdklib/   -  person Victor Stafusa    schedule 22.07.2018
comment
pt.stackoverflow.com/q/316844/132   -  person Victor Stafusa    schedule 22.07.2018


Ответы (5)


Как уже указывали другие, это проблема совместимости — вам нужна именно Java 8 для запуска Eclipse.

  • Установите JDK 8, если у вас его еще нет.
  • В Eclipse выберите Окно > Настройки > Установленные JRE. Убедитесь, что Java 8 отображается в списке и выбрана. После этого закройте Eclipse.
  • Кроме того, eclipse.ini также содержит ссылку на используемую виртуальную машину Java. Убедитесь, что виртуальная машина, на которую он указывает, — это Java 8 (см. ссылку о том, как ее найти и как настроить параметры виртуальной машины).
  • Перезапустите Eclipse и повторите попытку.
person user149408    schedule 03.05.2018

Код Android, который вы используете, пытается использовать класс sun.misc.BASE64Encoder.

Этот устаревший класс был удален из Java 9, поэтому он не будет работать.

Вам нужно будет вернуться к Java 8 или найти обновление кода Android (если оно есть).

person greg-449    schedule 13.11.2017
comment
Это Java, на которой работает сам Eclipse, а не Java, используемый вашим проектом. Eclipse требует как минимум Java 8. - person greg-449; 13.11.2017

Я работаю с Windows 7. Мне пришлось изменить настройки и файл ini. У обоих был C:\Program Files\Java\jdk-12.0.1\bin, который я изменил на C:\Program Files\Java\jre1.8.0_221\bin. Теперь это работает!

person James Osborne    schedule 18.07.2019

В моем случае это было что-то очень сумасшедшее. Мне нужно загрузить версию IDE eclipse NEON

Так как проект старый почти с 2014 года

Прикрепил URL-адрес IDE, для которой он вам нужен: Eclipse IDE NEON

введите здесь описание изображения

Мне также пришлось выполнить те же шаги установки

person Santiago Vasquez    schedule 11.12.2020

решение: перейдите в 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

это все

person Maxim Akristiniy    schedule 09.06.2021