Java 8의 새로운 기능을 테스트하고 여기에 표시된 것처럼 예제를 내 IDE (Eclipse, 원래 IntelliJ)에 복사했습니다 .
Eclipse는 람다 식에 대한 지원을 제공하지 않았으며 IntelliJ는 계속 오류를보고했습니다.
이 언어 레벨에서 지원되지 않는 Lambda 표현식
이것이 설치, 코드 또는 지원에 문제가 있는지 알고 싶습니다.
답변
IntelliJ IDEA에서 :
에서 File Menu
→ Project Structure
→ Project
변경 Project Language Level
에8.0 - Lambdas, type annotations etc.
안드로이드 3.0 이상 이동에 대한 File
→ Project Structure
→ Module
→ app
와에서 속성 탭 세트 Source Compatibility
및 Target Compatibility
로1.8 (Java 8)
스크린 샷 :
답변
답변
이 솔루션은 Android Studio 3.0 이상에서 작동합니다.
- 파일> 프로젝트 구조> 모듈> 앱> 속성 탭
모두 변경 Source Compatibility
과 Target Compatibility
에1.8
- 구성 파일 편집
해당 build.gradle 파일에서 직접 구성 할 수도 있습니다.
android {
...
// Configure only for each module that uses Java 8
// language features (either in its source code or
// through dependencies).
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
답변
intellij 13의 경우, 다음 탐색으로 프로젝트 언어 레벨 자체를 변경하십시오 8.0
.
File
|
|
---------Project Structure -> Project tab
|
|________Project language level
모듈 언어 수준
Modules lang level
에 대한 maven 플러그인이 없을 때 업데이트해야 했습니다 java compiler
.
File
|
|
---------Project Structure -> Modules tab
|
|________ language level
그러나 Module lang level
이미 필요한 경우 자동으로 수정됩니다 maven plugin
.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
변경 후 모든 것이 좋아 보인다
답변
Android Studio Canary Build (3. +)에서 다음을 수행 할 수 있습니다.
파일-> 프로젝트 구조-> 모듈 섹션에서 클래스의 모듈 이름이 있습니다. Java를 1.8 버전으로 업그레이드하려는 모듈을 클릭하십시오. -> “소스 호환성”및 “대상 호환성”을 1.7 이하에서 1.8로 변경하십시오. 다른 것을 바꾸지 마십시오. -> 적용을 클릭하십시오
이제 gradle이 다시 동기화되고 오류가 제거됩니다.
답변
compileOptions
build.gradle yours 앱을 추가 하십시오.
android {
...
defaultConfig {
...
jackOptions {
enabled true
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
답변
Android Studio 3.0.1 이상을 사용하는 최신 사용자의 경우 Alt + Enter를 클릭하고 언어 수준을 8.0-Lambdas, 입력 주석 등으로 업그레이드하십시오.