Targeting S+ (version 31 and above) requires that an explicit value for android:exported be defined when intent filters are present
간단하게 31버전을 Target을 하는 과정에서 해당 값이 명시되어 있지 않아서 발생하는 이슈이다.
AndroidManifest.xml의 파일의 <Activity~ Activity> 의 설정이 포함되어야한다.
반응형
참고로 android 12 미만의 버전에서는 오류가 발생하지 않는다.
<Android Developers 원문>
더 안전한 구성요소 내보내기
앱이 Android 12 이상을 타겟팅하고 인텐트 필터를 사용하는 활동이나 서비스, broadcast receiver를 포함하면 이러한 앱 구성요소의 android:exported 속성을 명시적으로 선언해야 합니다.
경고: 활동이나 서비스, broadcast receiver에서 인텐트 필터를 사용하지만 명시적으로 선언된 android:exported 값이 없으면 Android 12 이상을 실행하는 기기에 앱을 설치할 수 없습니다.
앱 구성요소에 LAUNCHER 카테고리가 포함된 경우 android:exported를 true로 설정합니다. 다른 대부분의 경우에는 android:exported를 false로 설정합니다.
다음 코드 스니펫은 android:exported 속성이 false로 설정된 인텐트 필터가 포함된 서비스의 예를 보여줍니다.
<service android:name="com.example.app.backgroundService"
android:exported="false">
<intent-filter>
<action android:name="com.example.app.START_BACKGROUND" />
</intent-filter>
</service>
ANdroid Developers - Android 12 Target : [링크]
★☆☆☆☆
반응형
댓글