어허

[Android] target SDK 31로 변경 후 푸쉬 에러, FLAG_IMMUTABLE 처리 본문

개발/Android

[Android] target SDK 31로 변경 후 푸쉬 에러, FLAG_IMMUTABLE 처리

AKDK 2022. 12. 1. 09:47
728x90
Process: com.project.myproc, PID: 32104
    java.lang.IllegalArgumentException: com.project.myproc: 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.


최근 앱스토어 등록 시 target sdk version을 올려야 한다는 경고가 나와서 31로 변경

큰 변경사항 없이 정상 동작 확인

등록 후 푸쉬메세지 오지 않는 문제 발생

디버깅 해보니 위와같은 에러 발생

해결 >>>

PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent,
	PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_IMMUTABLE);

위 처럼 플래그를 꼭 명시해주어야 한다.
MUTABLE / IMMUTABLE 두가지가 있고
변경가능, 불가능인것 같다.

compileSdkVersion 31
minSdkVersion 17
targetSdkVersion 31

com.google.firebase:firebase-cord:16.0.1
com.google.firebase:firebase-messaging:17.5.0

728x90
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
공유하기 링크
Comments