Android N требует, чтобы среда IDE работала с Java 1.8 или более поздней версии?

Мой макет XML не отображается с этим сообщением об ошибке. Я уже использую Java 8.

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

Также с использованием новейших инструментов сборки в Gradle.

android {
    compileSdkVersion 'android-N'
    buildToolsVersion 24.0.0 rc1
    ...
}

XML-ошибка —

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


person mjosh    schedule 10.03.2016    source источник
comment
В Android Studio возникают всевозможные проблемы с рендерингом. Я предлагаю вам предоставить минимально воспроизводимый пример. В этом случае это будет включать файл макета и конкретную ошибку.   -  person CommonsWare    schedule 11.03.2016
comment
@CommonsWare Я обновил изображение ошибки XML. Установить поддерживаемый JDK перенаправил меня на настройку шагов, которые я уже сделал .   -  person mjosh    schedule 11.03.2016
comment
Мне пришлось перейти на buildToolsVersion '24.0.0 rc1', в документации отсутствовали кавычки.   -  person Phyrum Tea    schedule 11.03.2016
comment
@PhyrumTea Ошибка не исчезла.   -  person mjosh    schedule 11.03.2016
comment
Сообщение об ошибке предполагает, что студия Android была запущена с другим (неправильным) JDK. Что находится в поле «О программе»? Справка-›О программе   -  person Phyrum Tea    schedule 11.03.2016
comment
Наконец, когда я попытался собрать и запустить проект, он потерпел неудачу с Directory cannot have its readable permission cleared for everybody. Судя по всему, это известная ошибка, и Google работает над ней.   -  person mjosh    schedule 11.03.2016


Ответы (17)


Я получил ту же ошибку, которую вы описываете, но в OS X. Я знаю, что это может не решить вашу проблему (потому что я не знаю эквивалента для Windows), но, поскольку это не зависит от ОС, я оставляю решение для любого пользователя OS X там. Отредактируйте файл /Applications/Android\ Studio.app/Contents/Info.plist и удалите версию 1.6 (в моем случае), вы можете поставить 1.6+, 1.7+ или 1.8, как вам больше нравится. Моя закончилась так

...
<key>JVMVersion</key>
<string>1.7+</string>
...

Имейте в виду, что функция перетаскивания несовместима с версиями Java от 1.8_60 до 1.8_75 (IDEA-146691). IDE сообщит об успешном изменении версии.

Для нетерминальных пользователей

  1. Найдите свой файл Android Studio.app. Если он находится в доке, вы можете щелкнуть его правой кнопкой мыши и выбрать Options > Show in Finder.
  2. Щелкните правой кнопкой мыши и выберите Show package content.
  3. Перейдите к указанному файлу (Contents/Info.plist).
  4. Отредактируйте файл в своем любимом текстовом редакторе.
person LaloLoop    schedule 11.03.2016
comment
Это изменит виртуальную машину, на которой работает Android Studio. В моей OSX исходное значение было: ‹key›JVMVersion‹/key› ‹string›1.6*,1.7+,1.8‹/string› А новое значение: ‹key›JVMVersion‹/key› ‹string›1.8‹/ нить> - person santhyago; 14.03.2016
comment
Оно работает! Спасибо за это решение. Вопрос: Почему Google хочет, чтобы его разработчики тратили свое время на эти вопросы? - person Kotik_o; 15.04.2016
comment
Спасибо за решение проблемы отсутствия документации в Google :). Интересно, почему здесь нет этой инструкции: developer.android .com/intl/pt-br/preview/setup-sdk.html#java8 (это ссылка, отображаемая в Android Studio). - person Totalys; 03.05.2016
comment
Работает отлично!! К сожалению, при обновлении Android Studio (которое я только что сделал до новейшей версии) он сбрасывает файл Info.plist, поэтому мне приходится снова повторять шаги, чтобы изменить свою JVMVersion: <key>JVMVersion</key> <string>1.8</string> Так раздражает Android Studio! - person Micro; 12.05.2016
comment
Android Studio 2.2 использует ‹string›1.8*, 1.8+‹/string›. - person jmnwong; 22.06.2016
comment
Так что у меня это сработало так, что в моей OSX исходное значение было: ‹key›JVMVersion‹/key› ‹string›1.6*,1.7+,1.8‹/string›, которое я полностью заменил на ‹key›JVMVersion‹ /key› ‹string›1.8*,1.8+‹/string›. - person Nishant.; 21.07.2016
comment
Это сработало для меня на Mac! Благодарю вас! Я на OS X El Capitan 10.11 - person Dustin Butler; 22.08.2016
comment
Не делайте этого, это испортит обновления Android Studio. Просто измените путь среды STUDIO_JDK. - person noob; 11.09.2016
comment
как открыть этот файл? Я использую Mac, но не могу найти это место. - person Milon; 15.09.2016

Нажмите на букву N рядом со значком Android в окне предварительного просмотра и выберите уровень API 23 или ниже. Это должно решить эту проблему.

Первый ряд значков  в окне просмотра

person Ian    schedule 12.03.2016
comment
Но я хочу просмотреть в N, а не в API 23. - person mjosh; 12.03.2016
comment
У меня возникла такая же проблема на моем Mac. у меня сработало понижение уровня API с 24 до 23. - person salman; 01.08.2016
comment
не ответ, пожалуйста, следуйте ответу, отмеченному как правильный - person Pavneet_Singh; 10.08.2016
comment
Это не ответ. Это просто игнорирование проблемной среды. - person enadun; 14.09.2016
comment
Хорошо сделано. Да, это решило мою проблему. Спасибо. :) - person arango_86; 09.10.2016

Установите переменные среды JDK_HOME и JAVA_HOME, в моем случае C:\Program Files\Java\jdk1.8.0_60.

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

Проверьте версию Java в Help > About. Он должен показать версию JRE, которую вы только что установили.

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

Вот и все, теперь вы можете просмотреть свой макет в N.

person mjosh    schedule 13.03.2016
comment
Я сделал то, что вы сказали, но когда я помогаю, это все еще указывает на мой старый jdk. Это почему? - person The_Martian; 17.05.2016
comment
У меня JRE: 1.8 (примерно). Однако я не могу создавать приложения, ориентированные на v24. > compileSdkVersion 'android-24' requires JDK 1.8 or later to compile. - person Zapnologica; 16.06.2016
comment
@The_Martian, вам нужно перезагрузить компьютер. - person squeeish; 19.06.2016
comment
В Mac Os я удаляю свою старую версию jdk. После этого Android Studio выбирает последнюю версию - person lopez.mikhael; 20.06.2016
comment
В моей системе отсутствовали все переменные JAVAx_HOME, у меня были установлены jdk 1.6, 1.7, 1.8, но на моем JAVA_HOME все еще была только 1.6. Кто должен создавать эти переменные? Разве Java не должна работать? Кстати, это все исправило - person Terix; 07.08.2016
comment
@lopez.mikhael это единственное, что в итоге помогло мне. Я изменил все возможные настройки, которые смог найти, настроил все именно так, как предполагалось, и продолжал получать ошибку. В конце концов я переместил старые каталоги jdk в подкаталог, который назвал old_jdks в папке JavaVirtualMachine. Теперь все работает отлично. - person zgc7009; 30.03.2017

Для пользователей Mac с этой проблемой (у меня OS X 10.11.5 и Android Studio 2.1.2), вот как вы можете решить ее:

В настоящее время версия Android Studio для Mac работает с Java 6 (не обязательно такой же, как версия JDK для приложения), потому что в Java 6 лучше рендеринг шрифтов, чем в Java 7 и 8, и это, по-видимому, важнее, чем рендеринг вашего макета.

Прежде всего убедитесь, что у вас установлен JDK 8.

Затем выполните следующие команды:

$ export STUDIO_JDK=/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk
$ open /Applications/Android\ Studio.app/

Возможно, вам придется изменить 91 в jdk1.8.0_91.jdk на другую версию. Вы можете увидеть, какие версии JDK у вас есть:

$ ls /Library/Java/JavaVirtualMachines/

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

Подробнее

Изменить: И если вы действительно не хотите открывать его из терминала:

  1. Создайте AppleScript с содержимым: do shell script "export STUDIO_JDK=/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk; open /Applications/Android\\ Studio.app/"
  2. Файл > Сохранить Выберите формат файла Приложение. Сохраните его где-нибудь.
  3. Если вы хотите изменить значок, см. здесь.
  4. Перетащите приложение на панель запуска, если хотите.
person wumbo    schedule 21.07.2016
comment
когда я пытаюсь запустить скрипт, я получаю: error "sh: /usr/local/bin/studio: No such file or directory" number 127 как это исправить? когда я запускаю его из терминала, он работает отлично - person Daniele; 23.08.2016
comment
@Daniele Извините, я забыл, что создал для этого другой сценарий оболочки. AppleScript должен иметь те же команды, что и выше. Смотрите мой обновленный ответ. - person wumbo; 24.08.2016

Я встретил ту же проблему.

Я установил jdk1.6, jdk1.7, jdk1.8 и развернул Studio, как и вы.

Мое решение - удалить jdk1.6 и jdk1.7, оставить только jdk1.8

sudo rm -rf ${path to jdk1.6}
sudo rm -rf ${path to jdk1.7}

Это все.

person youngwind    schedule 17.06.2016
comment
это безопасно делать - person Micro; 04.07.2016
comment
@MicroR Если другие программы не зависели от jdk1.6 и jdk1.7, я думаю, что это безопасно. - person youngwind; 05.07.2016
comment
Это решение решило проблему для меня. Этот способ удаления безопасен и рекомендован Oracle (docs.oracle.com/javase/8/docs/technotes/guides/install/) - person Showpath; 27.07.2016

Я использую Ubuntu 14.04 и столкнулся с похожей ошибкой, с той лишь разницей, что у меня нет NDK. Мое решение заключалось в том, что после настройки Java 8 в определении проекта перезагрузите Android Studio, не более того.

Проверьте версию Java системы, в консоли "java -version", вывод должен выглядеть примерно так

java version "1.8.0_91"
person Sergio A Guzmán    schedule 16.06.2016
comment
Я установил JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home. Должен ли STUDIO_SDK также быть /Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home? - person mythicalcoder; 17.07.2016
comment
Теоретически @Maven вы можете установить переменную STUDIO_SDK, которая будет путем SDK для запуска Android Studio (как указано в параметрах конфигурации Studio tools.android.com/tech-docs/configuration). Однако в моем случае я не установил эту переменную, и IDE работает, как и ожидалось. - person Sergio A Guzmán; 18.07.2016
comment
Ты прав. Я пробовал разные вещи. Это действительно была проблема 1.8, которая не была связана должным образом. Это решило проблему stackoverflow.com/a/35935433/2369867. Спасибо. - person mythicalcoder; 18.07.2016

Была такая же проблема с Ubunutu. Проблема заключалась не в запуске IDE с Java8.

Я исправил это, обновив Java-программу ОС по умолчанию, используя:

sudo update-alternatives --config java

И выбрав соответствующий путь Java8.

person danny11    schedule 15.07.2016

Я столкнулся с проблемой «Android N требует, чтобы IDE работала с Java 1.8 или более поздней версии». Ошибка продолжала появляться, несмотря на установку C:\Program Files\Java\jdk1.8.0_92 в качестве JDK проекта в File > Project Structure.

Я решил это, обновив JAVA_HOME в моих переменных среды с C:\Program Files\Java\jdk1.7.0_67 до C:\Program Files\Java\jdk1.8.0_92. Когда я сделал это и перезапустил Android Studio, стал доступен режим дизайна.

ОС: Виндовс 10

Android-студия: 2.1.2

person Maksim Dmitriev    schedule 14.07.2016

Я решил это таким образом. (AS+MAC OX El Capitan)

  1. Обновление инструментов SDK>Инструменты платформы Android SDK
  2. Перейдите в «Справка»> «Редактировать пользовательские свойства»> Появится диалоговое окно (нажмите «да»), затем напишите

    JVMVersion=1.8 
    

Затем полностью закройте Android Studio и перезагрузите проект.

person Milon    schedule 15.09.2016

Из документации: https://developer.android.com/studio/intro/studio-config.html#file_location

STUDIO_JDK: установите JDK для запуска Studio.

Я предпочитаю использовать переменную STUDIO_JDK и не трогать другие домашние переменные Java по умолчанию.

person Nublodeveloper    schedule 27.04.2016

Моя проблема заключалась в том, что Android N был «частично установлен».

Мое решение состояло в том, чтобы перейти к настройкам/внешнему виду и поведению/системным настройкам/Android SDK и проверить статус. Если он «частично установлен», вам придется удалить его, а затем переустановить. (Снимите флажок и нажмите «Применить»; он будет удален, затем вы можете установить флажок и установить его снова) Сработало для меня. Если вы перейдете на более низкую версию (например, 23), вам нужно изменить переменную buildToolsVersion на «23.0.0» в build.gradle.

person tiborK    schedule 21.06.2016
comment
Мой все еще говорит, что частично установлен после переустановки. - person Andrew; 23.06.2016
comment
Мой тоже частично установился после переустановки. @ Андрей, ты нашел какое-нибудь решение после этого? - person mythicalcoder; 17.07.2016
comment
@Maven для меня оказалось, что моя проблема заключалась в том, что я не выбрал правильный вариант сборки, когда пытался создать приложение. - person Andrew; 17.07.2016

Недавно я столкнулся с той же проблемой. Попробуйте изменить уровень предварительного просмотра API на 23 или ниже. Это сработало для меня.

person Community    schedule 26.06.2016

Я столкнулся с той же проблемой. Убедитесь, что вы визуализируете макет XML для скомпилированной версии SDK (не должно быть больше). Это означает, что вы столкнетесь с этим, если компилируете код с помощью Targeted SDK версии 23 и пытаетесь отобразить XML в SDK версии 24.

person Muhamed Riyas M    schedule 30.09.2016

При установке STUDIO_JDK в Mac OS следует помнить несколько вещей:

  • по умолчанию Java 1.6 от Apple используется для запуска Android Studio
  • когда STUDIO_JDK установлен на Oracle Java, он будет использоваться Android Studio для запуска

Разница между ними заключается в том, что Java IMO от Apple обеспечивает более приятное и лучшее сглаживание шрифтов в среде IDE.

Ответ здесь ссылается на ошибка в Android Studio, связанная со сглаживанием шрифтов. Тикет уже закрыт, но все же рендеринг отличается для Apple Java и Oracle SDK (у меня v1.8.0_102). И у первого все же восприятие лучше, чем у последнего.

person Mykola    schedule 06.10.2016

попробуйте использовать в проекте Java 1.8 - скачайте последнюю версию JDK и установите ее (если JSK отсутствует)

Затем добавьте в build.gradle эти строки android { ... // Настроить только для каждого модуля, который использует возможности языка Java 8 // (либо в его исходном коде, либо // через зависимости). compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } // Для проектов Kotlin kotlinOptions { jvmTarget = "1.8" } }

person Alexander    schedule 02.04.2020

машина: windows8 64-битная, в моем случае jdk1.7, который я установил, был 32-битным, поэтому я использовал studio.exe (32-битный), поэтому даже когда я загрузил новый jdk1.8 (64-битный), экземпляр студии, который я использовал (32-битный), не мог не обнаружил его, но когда я удалил старый jdk и попытался повторно запустить studio.exe, мне сказали установить 32-битный jdk. поэтому я запустил studio64.exe, и он работал без сбоев. убедитесь, что у вас есть правильный путь в переменных среды. ура андроид N

person Peterstev Uremgba    schedule 17.08.2016

Убедитесь, что вы установили jdk для x64, а не для x84 при запуске Android Studio (x64)

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

person user1564762    schedule 01.09.2016