본문 바로가기
Android

안드로이드 12 PendingIntent 이슈 및 대응

by 일용직 코딩노동자 2021. 12. 6.
728x90
반응형

 java.lang.IllegalArgumentException: com.example.myapp: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.

 

대충 이러한 에러메세지를 뱉어내고 있습니다.

 

보통 PendingIntent는 notification을 터치 시 이동 할 엑티비티를 구현 하는데 많이 쓰이는데요.

 

안드로이드 12 타겟팅 하실 때는

 

Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 , intent, PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_UPDATE_CURRENT);

이렇게 또는

 

끝에

PendingIntent.FLAG_IMMUTABLE

 

해당부분을 

 

PendingIntent.FLAG_MUTABLE

이렇게 적어주시면 되는데요.

 

IMMUTABLE로 하시면 변경이 불가능하다.

MUTABLE로 하시면 변경이 가능하다. 

 

지정하여 12부터는 필수로 하게 되어있습니다.

 

만약 이렇게 해도 에러가 사라지지않는 다면

 

라이브러리를 한줄 추가해주시면 됩니다.

 

앱 그래들의 종속성(dependencies)안에

 

implementation 'androidx.work:work-runtime-ktx:2.7.0'

해당 라이브러리 한줄을 추가 해 주시면 해결됩니다.

 

ㄱ ㅏ   ㄱ  푸시

ㅗ o    ㅗ  푸시 :D

728x90
반응형

댓글