IT 개발 로그캣/안드로이드

[에러로그] Marterial Card 사용시 빌드 에러

지푸라기 개발자 2019. 8. 23. 16:25
반응형

나름 디자인을 입혀보겠다고 구글의 Marterial Card 를 사용했는데 빌드만하면 XML 파일 에러를 띄우며 앱이 죽는다.
gradle 에 의존성 추가도 해주고 Marterial-Card-View 레퍼런스를 참고하여 옵션을 넣었는데도 아래와 같은 에러가 발생하였다.

 

Caused by: java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.MaterialComponents (or a descendant). 

 

에러 메시지는 app theme 이 필요하다는데..

그게 무슨말이야! 하고  Getting started 를 살펴보니 에초에 Material 을 사용하기 위한 기본 세팅을 제대로 안해준 것이다..

(레퍼런스를 처음부터 차근차근 읽어보지 않았던 탓... )

 

 

 

원인 : Marterial Design 을 사용하기 위해서는 액티비티에 Material Components Themes 을 style 로 지정해 주지 않아서 발생 

 

 

 

해결책 : AndroidManifest.xml 에서 Material Design 을 사용할 액티비티에 Material Components Themes 중 하나를 선택하여 옵션으로 넣어주면 된다.

 

<activity android:name=".SampleActivity"
android:theme="@style/Theme.MaterialComponents.Light.NoActionBar.Bridge"/>

 

참고로 Material Components Themes 의 종류는 다음과 같다. 

  • Theme.MaterialComponents

  • Theme.MaterialComponents.NoActionBar

  • Theme.MaterialComponents.Light

  • Theme.MaterialComponents.Light.NoActionBar

  • Theme.MaterialComponents.Light.DarkActionBar

  • Theme.MaterialComponents.DayNight

  • Theme.MaterialComponents.DayNight.NoActionBar

  • Theme.MaterialComponents.DayNight.DarkActionBar

이 중 하나를 선택해서 넣어주면 되고, 여기서 원하는 옵션이 없으면 styles.xml 에서 AppTheme 을 수정하거나 새로 Theme 을 만들어서 액티비티 옵션에 넣어줘도 된다.( Getting Started 에 설명이 잘 나와있다. )

 

 

 

* 해당 포스팅은 Material Design : Android 를 기준으로 하고 있습니다.

 

반응형