ฉันอัพเกรดเป็น 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 ฉันจะไม่หายลูกค้าจำนวนมากหรือไม่ เหตุใดฉันจึงไม่ได้รับข้อผิดพลาดนี้ก่อนที่ฉันจะอัปเกรด 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'
}
targetSdkVersion
มันเป็นไม่ได้บ่นเกี่ยวกับ "ฉันควรทำอย่างไรเพื่อแก้ไขปัญหานี้" - พยายามรวบรวมกับJava 8 ความเข้ากันได้เปิดใช้งาน "ถ้าฉันเปลี่ยนเป็น 1.8 java ฉันจะไม่พลาดลูกค้าจำนวนมากหรือ" - ไม่ใช่สำหรับวิธีการอินเทอร์เฟซเริ่มต้นที่ข้อความแสดงข้อผิดพลาดบ่น "ทำไมฉันถึงไม่ได้รับข้อผิดพลาดนี้ก่อนที่ฉันจะอัพเกรด android studio" - บางทีการพึ่งพาโดยนัย (เช่นการรวมข้อมูล)