android studio 3.1로 업그레이드했는데 다음 오류가 발생합니다.
Default interface methods are only supported starting with Android N (--min-api 24): void android.arch.lifecycle.DefaultLifecycleObserver.onCreate(android.arch.lifecycle.LifecycleOwner)
Message{kind=ERROR, text=Default interface methods are only supported starting with Android N (--min-api 24): void android.arch.lifecycle.DefaultLifecycleObserver.onCreate(android.arch.lifecycle.LifecycleOwner), sources=[Unknown source file], tool name=Optional.of(D8)}
여기 내 gradle 구성이 있습니다.
compileSdkVersion 27
//buildToolsVersion '27.0.3'
defaultConfig {
minSdkVersion 16
targetSdkVersion 27
multiDexEnabled true
//...
}
보시다시피, 나는 이미 불만을 제기하는 24보다 앞서 27을 타겟팅하고 있습니다. 이 문제를 해결하려면 어떻게해야합니까? 1.8 java로 변경하면 많은 고객이 누락되지 않습니까? android studio를 업그레이드하기 전에 왜이 오류가 발생하지 않았습니까?
이것이 최근에 넣은 LifecycleObserver 클래스에 관한 것인지 알 수 없으며 kotlin에 있었고 이제는 Java로 변경했지만 프로젝트를 청소 한 후에도 여전히 동일한 오류가 발생합니다.
public class LifeCycleAwareObserver implements LifecycleObserver {
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
public void onAppBackgrounded() {
AnalyticsUtils.trackStartSession(true);
}
@OnLifecycleEvent(Lifecycle.Event.ON_START)
public void onAppForegrounded() {
AnalyticsUtils.trackStartSession(false);
}
}
오류가 발생한 위치를 추적하여 수정하려면 어떻게해야합니까?
내 버전 종속성은 다음과 같습니다.
project.ext {
firebase_version = '12.0.0'
supportlib_version = '27.0.2'
room_version = '1.0.0'
espresso_version = '3.0.1'
archLifecycleVersion = '1.1.1'
}
답변
CommonsWare가 언급했듯이 참조 android {...}
를 위해 app 모듈의 build.gradle 클로저 안에 이것을 추가 하여 문제를 해결하십시오.
android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
...
}
답변
Google 을 기반으로 Java8을 사용하여이를 해결해야합니다 ( 파일> 프로젝트 구조 클릭 ). 소스 호환성 및 대상 호환성을 변경하십시오.
또한 해당 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
}
}
답변
앱 수준 gradle에서 다음 코드를 작성해야합니다.
android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
그들은에서 온 JavaVersion.java 안드로이드에.
Java 버전의 열거입니다.
9 : 이전 : http://www.oracle.com/technetwork/java/javase/versioning-naming-139433.html
9 : 후 : http://openjdk.java.net/jeps/223
아리따움
답변
build.gradle (Module : app) add compileOptions
블록을 업데이트하고 추가하십시오.JavaVersion.VERSION_1_8
apply plugin: 'com.android.application'
android {
.................
.........................
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
답변
최신 Android Studio 버전 3.4.1에서 소스 호환성 및 대상 호환성 Java 버전을 1.8로 다운 그레이드하여이 문제를 해결할 수 있습니다.
-
Mac에서 앱 폴더 또는 Command + 아래쪽 화살표를 마우스 오른쪽 버튼으로 클릭하여 모듈 설정 (프로젝트 구조) Winodw를 엽니 다.
-
적용 또는 확인을 클릭하십시오. 문제가 해결됩니다.
또한 build.gradle에서 수동으로 추가 할 수 있습니다 (모듈 : 앱)
android {
...
compileOptions {
sourceCompatibility = '1.8'
targetCompatibility = '1.8'
}
...
}
답변
이 코드를 build.gradle에서 사용하십시오
android {
compileOptions {
incremental true
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}