본문 바로가기
안드로이드/오류수정

안드로이드 12(API Level 31 이상) 타겟 시 발생 오류 minComplieSdk(31)

by 안드뽀개기 2022. 1. 6.
반응형

진행하는 프로젝트에서 implementation "androidx.core:core-ktx:1.4.0" 버전을 1.7.0버전으로 올린후 run을 했더니 다음과 같은 에러가 발생했다.

The minCompileSdk (31) specified in a
dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties)
is greater than this module's compileSdkVersion (android-30).
Dependency: androidx.core:core-ktx:1.7.0.
AAR metadata file: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/caches/transforms-2/files-2.1/3f01655127a1e6e37a1c51f885b83428/jetified-core-ktx-1.7.0/META-INF/com/android/build/gradle/aar-metadata.properties.

 

최소 complieSdkVersion을 31로 해야한다고 한다.

build.gradle(app)에서 complieSdkVersion과 targetSdkVersion을 31로 올린다음 Sync Now를 해준다. 그리고 run을 했더니 다음과 같은 에러가 발생했다.

 

Manifest merger failed : Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` when the corresponding component has an intent filter defined. See https://developer.android.com/guide/topics/manifest/activity-element#exported for details.

 

뭔진 모르겠지만 안드로이드 12를 타켓으로 한다면 android:exported 속성의 값을 지정해줘야 한다는 것 같아서 구글링 했고, manifest 파일에서 <activity>의 android:exported 속성을 true 혹은 false로 지정해줘야합니다.

 

android:exported 속성은 외부 응용프로그램에서 해당 액티비티에 액세스 가능한지를 나타내는 값입니다.
<intent-filter>를 포함하고 있는 activity는 android:exported="true"로 반드시 설정해야합니다.

 

 

 

Manifest 파일 수정한 후에 run을 하게되면 앱이 실행되는것을 확인하실 수 있습니다.

반응형