본문 바로가기
Programing/android

[android] 실행오류. version 31에서 앱 실행시 오류

by Benedictus711 2022. 2. 8.
728x90


    java.lang.IllegalArgumentException: : 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.
        at android.app.PendingIntent.checkFlags(PendingIntent.java:375)
        at android.app.PendingIntent.getBroadcastAsUser(PendingIntent.java:645)
        at android.app.PendingIntent.getBroadcast(PendingIntent.java:632)
        at androidx.work.impl.utils.ForceStopRunnable.getPendingIntent(ForceStopRunnable.java:174)
        at androidx.work.impl.utils.ForceStopRunnable.isForceStopped(ForceStopRunnable.java:108)
        at androidx.work.impl.utils.ForceStopRunnable.run(ForceStopRunnable.java:86)
        at androidx.work.impl.utils.SerialExecutor$Task.run(SerialExecutor.java:75)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:920)

안드로이드 버전 12에서 기존 앱을 실행시에 오류가 발생했다.
무슨 에러인가 찾아보니 해결법은 의외로 간단하였다.

build.gradle에 라이브러리를 추가해 주면 되었다.

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

AndroidManifest.xml에서 exported를 사용하고 android version 31에서 돌릴경우 에러가 발생한 것 같았다.

android:exported="true"

 

<application
        ...>

        <activity
            android:name=".MainActivity"
            android:screenOrientation="portrait"
            android:exported="true">
            <intent-filter>
                ...
            </intent-filter>
        </activity>
    </application>

 

라이브러리를 추가하고 업데이트 함으로 해결이 되었다.

728x90

댓글