안녕하세요? 닉네임간편입니다. 이번 시간에는 제목의 에러에 대해서 다루어보겠습니다.
1. 에러 전문
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
2. 발생 원인
앱의 targetSdkVersion이 31 이상이면, 즉 안드로이드 12 이상을 타겟으로 설정했다면 애플리케이션의 모든 구성요소에 대해서 android:exported를 명시해주어야 합니다.
이전에는 이것이 default로 값이 설정되었지만, 이제는 모두 명시적으로 설정해주어야 합니다. 만일 다른 애플리케이션의 구성요소로 액티비티를 시작할 수 있다면 true, 할 수 없다면 false로 설정해줍니다.
이때 인텐트 필터를 사용하는 경우 이 요소를 false로 설정하면 안 됩니다. 만일 false로 설정한다면 앱이 액티비티를 호출하려 할 때 시스템이 ActivityNotFoundException을 발생시킵니다. 대신 이에 대한 인텐트 필터를 설정하지 않았다면, 다른 앱이 이 구성요소를 호출하지 못하게 하려고 할 경우 이 값을 false로 설정하면 됩니다.
따라서 기본적으로 처음 나타나는 화면에선 이 값을 false로 설정합니다.
아래는 그 예시입니다.
<activity android:name=".activity.PayActivity"
android:exported="false"/>
<activity android:name=".activity.BasketActivity"
android:exported="false"/>
<activity android:name=".activity.OrderActivity"
android:exported="false"/>
<activity android:name=".activity.SpecificActivity"
android:exported="false"/>
<activity android:name=".activity.SelectMenuActivity"
android:exported="false" />
<activity android:name=".activity.RealMainActivity"
android:exported="false"/>
<activity android:name=".activity.MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
[참조: https://developer.android.com/guide/topics/manifest/activity-element#exported]
3. 마무리
이번 시간에는 exported 관련 에러에 대해서 알아보았습니다. 앱의 타겟 버전을 바꾸면서 이러한 세세한 요소들에 있어서 에러가 난다면 개발자 입장에서 당혹스러울 수 있는데요, 이번 시간을 통해 잘 대처하셨으면 좋겠습니다.
728x90
반응형
'Android > 에러' 카테고리의 다른 글
could not find Fragment constructor (0) | 2021.12.22 |
---|---|
Missing required view with ID (0) | 2021.12.21 |
Expected BEGIN_OBJECT but was STRING at line 1 column 1 (0) | 2021.12.20 |
Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter intent (0) | 2021.11.22 |
resource android:color/system_neutral1_1000 not found (0) | 2021.10.04 |