Я перейшов на 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
//...
}
Як бачите, я націлююсь на 27, які вже випереджають 24, на які скаржаться. Що саме потрібно зробити, щоб це виправити? Якщо я перейду на 1,8 Java, чи не пропустять я багато клієнтів? Чому я не отримував цієї помилки перед оновленням андроїд-студії?
Я не знаю, чи йдеться про клас 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'
}
targetSdkVersion
. "Що саме я повинен зробити, щоб це виправити?" - спробуйте компілювати з підтримкою сумісності Java 8 . "якщо я перейду на 1,8 Java, я не буду бракувати багато клієнтів?" - не для методів інтерфейсу за замовчуванням, на які скаржиться повідомлення про помилку. "чому я не отримував цієї помилки перед тим, як я оновив андроїд-студію." - можливо, неявна залежність (наприклад, прив'язка даних).