본문 바로가기
안드로이드/Error

[안드로이드 ERROR] Default interface methods are only supported starting with Android N

by 프로나인 2022. 1. 9.

안녕하세요. 프로나인입니다.

 

안드로이드 라이브러리를 추가하거나 gradle파일의 버전을 바꾸거나 하면 아래와 같이 오류가 발생할 수 있습니다.

[오류 메세지]

Default interface methods are only supported starting with Android N (--min-api 24): 

androidx.lifecycle.Lifecycle androidx.lifecycle.LifecycleRegistryOwner.getLifecycle()

저같은 경우는 androidx.lifecycle 관련한 오류로 min api 값을 24로 바꾸라고 안내를 해줍니다. 

또 다른 오류에서는 min api 값을 26버전으로 바꾸라고 안내를 해주고 있습니다. 

 


해결 방법 (2가지)

1. minSdkVersion 을 올려준다. 

오류 메세지를 보면 --min-api 24 & --min-api 26을 확인 할 수 있는데요. 

이때 오류메세지에서 권유한 minSdkVersion 을 올려준 후 재빌드를 하게 되면 빌드에 성공 할 수 있는 것을 확인 할 수있습니다.

2. compileOption 에 옵션 값을 추가해준다.

오류 메세지들을 잘 확인해보면 친절하게 빌드에 실패한 사유 & 해결 방법 알려주고 있습니다. 

build.gradle[app] 에 compileOptions 으로 JavaVersion을 넣어줍니다. 

android { 
	... 
    compileOptions { 
    sourceCompatibility JavaVersion.VERSION_1_8 
    targetCompatibility JavaVersion.VERSION_1_8 
    } 
    ... 
}

결과

저는 위의 해결방법 2가지 중에 2번으로 하였습니다!

1번 방법은 minSdkVersion을 변경함으로 버전 낮은 기종들의 호환성을 위하여 변경 하지 않았습니다🧐

이렇게 버전들을 올려주고 재빌드를 하니 정상적으로 빌드가 성공했다는 것을 확인 할 수 있습니다👍

위의 방법으로도 안되셨다면, 댓글 남겨주세요~!

 

 


참고자료 - stackoverflow

https://stackoverflow.com/questions/49891730/invoke-customs-are-only-supported-starting-with-android-0-min-api-26

 

Invoke-customs are only supported starting with android 0 --min-api 26

before i'm use build version gradle 26 but after change buildtoolsversion to 27 like as this image I am using android studio 4.2.2 recently i update all my dependency and sourceCompatibility

stackoverflow.com

 

댓글