반응형
안드로이드 타켓 버전을 올리면서 발생하는 이슈로 해당 값을 명시해줘야 한다. 아래에서 자세한 해결방법을 확인하자.
1. 오류 내용
필자의 경우 타켓 빌드 버전을 올리면서 activity와 service 에 android:exported 값을 명시해야 한다고 에러가 발생하였다.
2. Android Developers 해석
- 앱이 Android 12 이상을 타겟팅하고 인텐트 필터를 사용하는 Activity이나 Service, broadcast receiver를 포함하면 이러한 앱 구성요소의 android:exported 속성을 명시적으로 선언해야 합니다.
- 경고: Activity이나 Service, broadcast receiver에서 인텐트 필터를 사용하지만 명시적으로 선언된 android:exported 값이 없으면 Android 12 이상을 실행하는 기기에 앱을 설치할 수 없습니다.
- 앱 구성요소에 LAUNCHER 카테고리가 포함된 경우 android:exported를 true로 설정합니다.
- 다른 대부분의 경우에는 android:exported를 false로 설정합니다.
3. 해결방법
아래와 같이 android:exported를 명시하면 바로 해결이 됩니다.
<activity
android:name="LoginActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
4. android:exported 란?
- 다른 어플에 의해서 현재 만들고 있는 앱의 액티비티가 실행될수 있는지 아닌지를 설정하는 역할을 한다.
- exported의 값이 true인 경우에는 모든 앱에서 접근이 가능하지만,
- false인 경우에는 모든 앱에서 접근이 불가능하다.
- 특정 조건(동일한 앱, 동일한 사용자 id..)와 같은 경우에만 접근이 가능하다.
728x90
반응형
댓글