Как установить -source 1.7 в Android Studio и Gradle
Я получаю следующую ошибку при попытке скомпилировать мой проект в Android Studio:
Gradle: error: diamond operator is not supported in -source 1.6
Я установил 1.7 в качестве цели во всех найденных настройках проекта. Также путь, отображаемый в SDK проекта под 1.7 SDK, является правильным путем к установке Java 1.7.
Даже когда я запускаю Java-версию в терминале, она говорит мне, что я работаю на Java 1.7.
Я попытался установить переменную JAVA_HOME env в это:
/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home
Ошибка не уходит. Как устранить ошибку?
8 ответов
Поддержка Java 7 была добавлена в инструменты сборки 19. Теперь вы можете использовать такие функции, как оператор diamond, multi-catch, try-with-resources, строки в коммутаторах и т. Д. Добавьте следующее к своему build.gradle
,
android {
compileSdkVersion 19
buildToolsVersion "19.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 19
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
Требуется Gradle 1.7+, плагин Android gradle 0.6.+.
Обратите внимание, что только попытка с ресурсами требует minSdkVersion
19. Другие функции работают на предыдущих платформах.
Возможно, эти ответы старые, но с новыми Android Studios 1, вы делаете следующее, чтобы увидеть модуль, работающий на 1.7 (или 1.6, если хотите). Нажмите Файл -> Структура проекта. Выберите модуль, который вы хотите запустить, а затем в разделе "Совместимость с исходным кодом" и "Целевая совместимость" выберите 1.7. Нажмите "ОК".
Вы можете изменить его в новой версии Android Studio (0.8.X)
Файл-> Другие настройки -> Настройки по умолчанию -> Компилятор (разверните его, нажав стрелку влево) -> Компилятор Java -> Вы можете изменить версию байт-кода проекта здесь
Последняя версия Android Studio 1.4.
Нажмите Файл-> Структура проекта-> Местоположение SDK-> Местоположение JDK.
Вы также можете установить совместимость версии JDK для отдельного модуля, перейдя в модуль (под расположением SDK), и соответственно отредактировать совместимость исходного кода. (обратите внимание, это относится только к модулю Android).
Щелкните правой кнопкой мыши по вашему проекту> Откройте "Настройка модуля"> выберите "Проект" в разделе "Настройка проекта".
Измените Project SDK на последний (может быть API 21) и уровень языка проекта на 7+
В настоящее время Android не поддерживает Java 7, только Java 6. Новые функции в Java 7, такие как синтаксис diamond, в настоящее время не поддерживаются. Найти источники, поддерживающие это, нелегко, но я мог бы обнаружить, что движок Dalvic построен на подмножестве Apache Harmony, которое когда-либо поддерживало Java до версии 6. И если вы проверите системные требования для разработки приложений Android, в нем также говорится что нужен как минимум JDK 6 (хотя это, конечно, не реальное доказательство, а всего лишь указание). И это говорит о том же, что и я. Если я найду что-то более существенное, я добавлю это.
Редактировать: Кажется, поддержка Java 7 была добавлена, так как я первоначально написал этот ответ; проверьте ответ Сергей Печеницкий.
Зайдите в свой Gradle и найдите sourceCompatibility и измените его с 1.6 на 7. Это работало для меня по крайней мере.
Вы также можете зайти в настройки вашего модуля и установить для Source/Target Compatibility значение 1.7.
Это создаст следующий код в вашем Gradle:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
Всегда используйте последнюю версию SDK для сборки:
compileSdkVersion 23
Это не влияет на поведение во время выполнения, но дает вам новейшие возможности программирования.