마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

PendingIntent mutability 오류

0 추천

 

val intent = Intent(this, UserTypeActivity::class.java)
//        intent.putExtra("noti_type", noti_type)
        intent.putExtra("link", data?.get("link"))

        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
       

val pendingIntent = PendingIntent.getActivity(this, 0, intent, 
PendingIntent.FLAG_UPDATE or PendingIntent.FLAG_CANCEL_CURENT or PendingIntent.FLAG_IMMUTABLE)

이전에 PendingIntent 불변성 관련해서 오류가 나길래 위와 같이 수정하였고 PendingIntent 클래스를 사용하는 곳은 여기 밖에 없습니다.

하지만 아직도 다음과 같은 오류가 발생합니다.

Fatal Exception: java.lang.IllegalArgumentException kr.or.cwma.ecardapp: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent. Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.

제가 보는 바로는 불변성에 대해 제대로 지정해 준 것 같은데 도대체 뭐가 문제일까요

ㅇㅇㅇㅇㅇㅇㅇㅇ (1,000 포인트) 님이 2023년 7월 13일 질문
ㅇㅇㅇㅇㅇㅇㅇㅇ님이 2023년 7월 13일 수정

1개의 답변

+1 추천
 
채택된 답변
두가지 체크해 보세요.

1. SDK 버전 체크. https://developer.android.com/about/versions/12/behavior-changes-12#pending-intent-mutability

2. AdMob 같은 라이브러리를 사용하고 계신지. 사용 중인 라이브러리  버전에서 해당 변경사항을 지원하는 지원하고 있는지 확인해 보세요.
spark (227,530 포인트) 님이 2023년 7월 13일 답변
ㅇㅇㅇㅇㅇㅇㅇㅇ님이 2023년 7월 13일 채택됨
해당 문제가 발생하고 있는 버전은 안드로이드 12 이상만이며 아마 업데이트 안한 라이브러리,  특히나 파이어베이스 라이브러리 중에서도 있을 수 있겠네요. 답변 감사합니다.
...