투케이2K

212. (TWOK/ERROR) [Android] [빌드 에러] MaterialAlertDialogBuilder requires .. update your theme inherit 본문

투케이2K 에러관리

212. (TWOK/ERROR) [Android] [빌드 에러] MaterialAlertDialogBuilder requires .. update your theme inherit

투케이2K 2024. 1. 16. 20:05

[환경 설정 및 설명]

프로그램 : AndroidStudio

설 명 : [Android] [빌드 에러] MaterialAlertDialogBuilder requires .. update your theme inherit

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.javaproject, PID: 6336
    java.lang.IllegalArgumentException: com.google.android.material.dialog.MaterialAlertDialogBuilder requires a value for the com.example.javaproject:attr/colorSurface attribute to be set in your app theme. You can either set the attribute in your theme or update your theme to inherit from Theme.MaterialComponents (or a descendant).
        at com.google.android.material.resources.MaterialAttributes.resolveTypedValueOrThrow(MaterialAttributes.java:72)
        at com.google.android.material.color.MaterialColors.getColor(MaterialColors.java:89)
        at com.google.android.material.dialog.MaterialAlertDialogBuilder.<init>(MaterialAlertDialogBuilder.java:121)
        at com.google.android.material.dialog.MaterialAlertDialogBuilder.<init>(MaterialAlertDialogBuilder.java:104)
        at com.example.javaproject.C_Ui_Material$1.run(C_Ui_Material.java:137)
        at android.os.Handler.handleCallback(Handler.java:942)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loopOnce(Looper.java:226)
        at android.os.Looper.loop(Looper.java:313)
        at android.app.ActivityThread.main(ActivityThread.java:8762)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:604)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)
 

[에러 원인]

1. styles.xml 파일에서 Material Alert 커스텀 디자인 수정 시 발생 

2. styles.xml 파일에서 AppTheme 가 Theme.AppCompat.Light.NoActionBar 로 설정 되어 있어 호환성 충돌 이슈
 

[해결 방법]

 

1. styles.xml 파일에서 AppTheme 속성 변경 MaterialComponents (AndroidManifest.xml 파일 >> application 에서 AppTheme 바라본다)

    <style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

 

반응형
Comments