java.lang.UnsupportedClassVersionError: com/google/doclava/Doclava: неподдерживаемая версия Major.Minor версии 51.0 для Android.

Я пытаюсь создать собственный AOSP из источника Google. Я выполнил шаги, упомянутые в Документах Google, и смог успешно собрать его и успешно прошить свое устройство изображениями. Тем не менее, я попытался создать его снова после внесения некоторых изменений (в основном просто добавил несколько журналов, чтобы поиграть с ним). Ошибка сборки. Затем я попытался сделать еще раз, он сказал Javac 1.6 найден. Требуется Javac 1.7. Затем я следовал ответам на эту конкретную проблему, используя следующую команду:

 update-alternatives --config javac
There are 2 choices for the alternative javac (providing /usr/bin/javac).

  Selection    Path                                         Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-7-openjdk-amd64/bin/javac   1051      auto mode
* 1            /usr/lib/jvm/j2sdk1.6-oracle/bin/javac        315       manual mode
  2            /usr/lib/jvm/java-7-openjdk-amd64/bin/javac   1051      manual mode

Затем я выбрал вариант 0. Затем я попытался сделать еще раз. На этот раз это не удалось со следующей ошибкой:

java.lang.UnsupportedClassVersionError: com/google/doclava/Doclava : Unsupported major.minor version 51.0 android build

Изучив все ответы на этот вопрос (я обнаружил, что это задавали так много раз), я обнаружил, что это связано с тем, что время компиляции (более высокая версия) и время выполнения (более низкая версия) JDK не совпадают, и я должен перекомпилировать его с помощью Java 1.7. Как мне это сделать для сборки Android? Я также удивлен, почему я получил ошибку «Найден Javac 1.6. Требуется Javac 1.7». поскольку я успешно создал сборку с использованием Java 1.6.


person Ankur Bhatia    schedule 09.05.2016    source источник


Ответы (2)


В данном случае проблема не в javac, а в javadoc. Проверить его версию: javadoc -J-version (да, странно).

Итак, вы должны использовать:

update-alternatives --config javadoc
person Jacek    schedule 26.09.2016
comment
Спасибо Яцек за ответ. Но, к сожалению, у меня нет запущенной системы, чтобы проверить это сейчас. Так что очень жаль, что не смогу проверить и принять ваш ответ в данный момент. - person Ankur Bhatia; 26.09.2016
comment
Спасибо, решил мою проблему: - person Pip; 27.10.2017

Эта ошибка означает, что вы пытаетесь загрузить файл «класса» Java, который был скомпилирован с более новой версией Java, чем вы установили.

Например, ваш файл .class мог быть скомпилирован для JDK 7, а вы пытаетесь запустить его с JDK 6.

Таким образом, решение состоит в следующем:

  • Обновите среду выполнения Java или
  • Перекомпилируйте класс, если у вас есть исходный код, используя ваш локальный компилятор Java (если он у вас есть).

    javac имя_файла.java

посетите эту более подробную информацию: Как исправить java.lang. UnsupportedClassVersionError: неподдерживаемая основная.дополнительная версия

person Community    schedule 09.05.2016
comment
Спасибо Харшад. Но после запуска команды :update-alternatives --config javac разве она не должна работать с Java 7? - person Ankur Bhatia; 09.05.2016
comment
@AnkurBhatia смотрите ссылку в ответе. - person ; 09.05.2016
comment
Кроме того, версия java на моем сервере строителя также является java 1.7. Действительно запутался. - person Ankur Bhatia; 09.05.2016
comment
Спасибо, Харшад, я уже видел этот ответ. Но проблема в том, что в случае Android AOSP я не могу скомпилировать отдельный файл. У меня просто есть возможность сделать. Теперь это должно использовать Java 1.7. Или я что-то неправильно предполагаю? - person Ankur Bhatia; 09.05.2016