Android Studio 및 Gradle에서 -source 1.7을 설정하는 방법


177

Android Studio에서 프로젝트를 컴파일하려고 할 때 다음 오류가 발생합니다.

Gradle: error: diamond operator is not supported in -source 1.6

내가 찾은 모든 프로젝트 환경 설정에서 1.7을 대상으로 설정했습니다. 또한 1.7 SDK 아래의 프로젝트 SDK에 표시된 경로는 Java 1.7 설치의 올바른 경로입니다.

터미널에서 java -version을 실행하더라도 Java 1.7에서 실행 중임을 알려줍니다.

JAVA_HOME env 변수를 다음과 같이 설정하려고했습니다.

/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home

오류는 사라지지 않습니다. 오류를 어떻게 제거합니까?


당신은 한 마십시오 sourceCompatibility당신의 build.gradle 설정?
fge

빌드 도구 19에서 Java 7 지원이 추가되었습니다. 편집 한 답변을 확인하십시오.
Sergii Pechenizkyi

답변:


289

Java 7 지원은 빌드 도구 19에서 추가되었습니다. 이제 다이아몬드 연산자, 멀티 캐치, 리소스 사용, 스위치의 문자열 등과 같은 기능을 사용할 수 있습니다 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. 이상이 필요합니다.

참고로 minSdkVersion19 개의 리소스 만 사용해야 합니다. 다른 기능은 이전 플랫폼에서 작동합니다.

Android Gradle 플러그인 사용 설명서에 연결

소스와 타겟이 어떻게 다른지 보려면 링크


1
이것은 Android Studio에서만 작동합니까 아니면 ADT를 사용하는 Eclipse에서도 작동합니까?
Natix

1
최신 ADT for Eclipse로 가능합니다. 여기에서 전체 설명을 확인하십시오 : sites.google.com/a/android.com/tools/recent/…
Sergii Pechenizkyi 2013

7
끈 스위치를위한 woohoo!
Coder

10
try-with-resources는 API 19 이상에서만 사용할 수 있습니다.
Alex Lockwood 2016 년

73

위의 답변이 오래되었지만 새로운 Android Studios 1에서는 다음과 같이 1.7 (또는 원하는 경우 1.6)에서 모듈이 실행되는 것을 볼 수 있습니다. 파일-> 프로젝트 구조를 클릭하십시오. 실행할 모듈을 선택한 다음 "Source Compatibility"및 "Target Compatibility"에서 1.7을 선택하십시오. "확인"을 클릭하십시오.

안드로이드 스튜디오의 프로젝트 구조 화면 1


5
나는 이것이 최신 안드로이드 스튜디오에 대한 정답이라고 생각합니다. 이 또한 정답
있기를 바랍니다

1
이것은 기본적으로 허용되는 답변과 동일합니다.
Kerem

1
이것은 단지 편리한 기능 일 뿐이며, 앞서 설명한 "compileOptions"코드를 gradle 파일에 삽입합니다.
user3259330

이것을 8로 설정하려면 어떻게해야합니까?
Neon Warge

1.8과 1.9를 볼 수 없습니까? 정보-> 도움말에 따르면 Android Studio는 1.8 JRE를 사용하고 있습니다.
Srikar Reddy

14

새로운 Android 스튜디오 버전 (0.8.X)에서 변경할 수 있습니다

파일-> 기타 설정-> 기본 설정-> 컴파일러 (왼쪽 화살표를 클릭하여 확장)-> Java 컴파일러-> 여기에서 프로젝트 바이트 코드 버전을 변경할 수 있습니다

여기에 이미지 설명을 입력하십시오


8

최신 Android Studio 1.4.

파일-> 프로젝트 구조-> SDK 위치-> JDK 위치를 누르십시오.

SDK 위치 아래에있는 모듈로 이동하여 개별 모듈 JDK 버전 호환성을 설정하고 그에 따라 소스 호환성을 편집 할 수도 있습니다. (이는 Android 모듈에만 적용됩니다).


이 설정은 이름이 "프로젝트 구조"인 경우에도 모든 프로젝트에 영향을주기 때문에 혼동됩니다.
Oliver Hausler

5

프로젝트를 마우스 오른쪽 버튼으로 클릭하고 모듈 설정 열기> "프로젝트 설정"섹션에서 "프로젝트"를 선택하십시오.

Project SDK를 최신으로 변경하고 (API 21 일 수 있음) 프로젝트 언어 수준을 7 이상으로 변경하십시오.


4

현재 Android는 Java 7, Java 6 만 지원하지 않습니다. 따라서 다이아몬드 구문과 같은 Java 7의 새로운 기능은 현재 지원되지 않습니다. 이를 지원할 소스를 찾는 것은 쉽지 않지만 Dalvic 엔진은 Java 버전 6까지만 지원했던 Apache Harmony 의 서브 세트를 기반으로 빌드 된 것을 알 수 있습니다. 또한 Android 앱 개발을위한 시스템 요구 사항 을 확인하면 적어도 JDK 6이 필요합니다 (물론 이것은 실제 증거가 아니라 표시 일뿐입니다). 그리고 이것은 내가 가진 것과 거의 동일하게 말합니다. 더 실질적인 것을 발견하면 그것을 추가 할 것입니다.

편집 : 원래이 답변을 작성한 이후 Java 7 지원이 추가 된 것 같습니다. Sergii Pechenizkyi 의 답변을 확인하십시오 .


2
여기, 문제를 극복하는 방법에 대한 링크와 비슷한 질문이 있습니다 : stackoverflow.com/questions/14487682/…
blalasaadri

2

항상 최신 SDK 버전을 사용하여 빌드하십시오.

compileSdkVersion 23

그것은 않습니다 런타임 동작에 영향을 미치지 만, 당신에게 최신 프로그래밍 기능을 제공합니다.


2

Gradle로 이동하여 sourceCompatibility를 찾아 1.6 에서 7로 변경하십시오 . 그것은 적어도 나를 위해 일했습니다.

모듈 설정으로 이동하여 소스 / 대상 호환성 을 1.7로 설정할 수도 있습니다 .

모듈 설정 창

Gradle에 다음 코드가 생성됩니다.

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.