Android アプリ開発 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.

green and red metal trash bins

 

Androidアプリの開発で以下のクラッシュが発生した時の解決方法

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.

Android OSバージョン 12で動作確認をすると、上記のメッセージが出て、アプリが落ちる現象が発生しました。
これは、Target SDK 31(Android OSバージョン 12)から PendingIntent のmutability(可変性)の指定が必須となったにもかかわらず、指定していなかったことが原因でしたので下記のように修正しました。

if (Build.VERSION.SDK_INT >= 31) {
// AndroidOSバージョンが12.0以上の端末用
sender = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_IMMUTABLE);
} else {
// それ以外の端末用
sender = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
}

あと、「build.gradle(app)」ファイルの「dependencies」に、下記を追記すれば無事解決しました。

dependencies {
implementation 'androidx.work:work-runtime-ktx:2.8.1'
}

 

しゅう
しゅう

主に技術系の内容を書いています m(_ _)m

記事本文: 36

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です