반응형
개발 하다 아래 error를 보게 되었고 그에 대한 정리를 위해 글을 쓴다.
Manifest merger failed : android:exported needs to be explicitly specified
for . 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.
android 개발하면서 android 에서 제공하는 navigation을 적용하면서
"androidx.navigation:navigation-compose:2.4.0-alpha08" 을 적용하려니 sdk 버전을 31로 높여야 해서 높혔다.
그러니 문제가 발생했다.
manifest.xml에 있는 activity중 intent filter 를 포함한 ativity에는 속성으로
android:exported="true"
를 적용해 주어야한다는 것이다.
그래서 적용을 해주시 정상적으로 잘 동작하였다.
그런데 또 카카오와 네이버 로그인을 위해 lib리를 적용해서 했더니 또 위의 error가 나타났다.
원인을 보니 추가된 lib의 manifest.xml에 activity중 intent filter 를 포함한 ativity에 exported가 없는 애들이 있어서 추가해 주었더니 잘 동작하게 되었다.
확인 방법은 다음과 같다.
위 그림처럼 manifest.xml 파일에서 하단 text 탭 옆에 Merged Manifest 탭을 클릭 거기서 오른쪽 화면에 머지된 다양한 manifest.xml을 다 뒤져서 exported 가 없는 애들을 다 추가해야하는 것으로 보인다.
또한, 위에 것이 보기 힘드니
이렇게 보면 더 빨리 찾아볼 수 있다.!
반응형