如何使用兼容支持库的 Android 材质组件?
Posted
技术标签:
【中文标题】如何使用兼容支持库的 Android 材质组件?【英文标题】:How to use Android material components with Support Library compatibility? 【发布时间】:2019-12-22 19:21:29 【问题描述】:我尝试使用 android Material 组件库:https://github.com/material-components/material-components-android
用于获取材料日期选择器。将其添加到我的 gradle 后:implementation 'com.google.android.material:material:1.1.0-alpha09'
并构建项目后,我收到错误消息:
Android resource linking failed
warn: removing resource
.../values.xml:3332: error: style attribute 'android:attr/dialogCornerRadius' not found.
.../values-v28.xml:15: error: resource android:attr/dialogCornerRadius not found.
.../values-v28.xml:19: error: resource android:attr/dialogCornerRadius not found.
.../values.xml:6855: error: resource android:attr/fontVariationSettings not found.
.../values.xml:6855: error: resource android:attr/ttcIndex not found.
.../values.xml:7134: error: resource android:attr/lineHeight not found.
.../values.xml:7139: error: resource android:attr/lineHeight not found.
.../values.xml:7354: error: resource android:attr/textFontWeight not found.
error: failed linking references.
据我所知,AndroidX 和支持库存在冲突。 库文档指出需要迁移到 AndroidX。 我如何在不迁移的情况下使用这个库,或者有人知道类似的材料日期选择器库?
【问题讨论】:
【参考方案1】:答案在文档中。
如果您还不想切换到新的 androidx 和 com.google.android.material 包,则可以通过
com.android.support:design:28.0.0
依赖项使用 Material 组件。注意:您不应在您的应用中同时使用com.android.support
和com.google.android.material
依赖项。
您可以找到另一个库,但请记住,今天的其他库(如 firebase 或 google play 服务)需要 androidx 迁移。迟早会成为标准。
【讨论】:
【参考方案2】:您可以找到另一个材料日期选择器库here。为了解决链接错误,您可以尝试以下步骤:
1) 在 gradle.properties 文件中添加如下代码:
android.useAndroidX=true
android.enableJetifier=true
2) 在应用级别的 build.gradle 中,在buildTypes
中添加以下代码:
compileOptions
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
3) 将 compileSdkVersion
和 buildToolsVersion
设置为 28。
【讨论】:
以上是关于如何使用兼容支持库的 Android 材质组件?的主要内容,如果未能解决你的问题,请参考以下文章
Android 材质 CardView 波纹效果改变内容颜色
Android 支持包/兼容性库 - 使用 v4 还是 v13?
Android Material Design 兼容库的使用