[에러로그] Marterial Card 사용시 빌드 에러
나름 디자인을 입혀보겠다고 구글의 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 를 기준으로 하고 있습니다.