Android
안드로이드 12 PendingIntent 이슈 및 대응
일용직 코딩노동자
2021. 12. 6. 17:42
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
반응형