缺少Android CardView库的资源

时间:2015-04-29 15:37:53

标签: android android-appcompat android-cardview

我在我的项目中使用CardView,我在旧设备上收到错误:

 E  android.view.InflateException: Binary XML file line #25: Error inflating class android.support.v7.widget.CardView
                        E      at android.view.LayoutInflater.createView(LayoutInflater.java:518)
                        E      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:570)
                        E      at android.view.LayoutInflater.rInflate(LayoutInflater.java:623)
                        E      at android.view.LayoutInflater.rInflate(LayoutInflater.java:626)
                        E      at android.view.LayoutInflater.inflate(LayoutInflater.java:408)
                        E      at android.view.LayoutInflater.inflate(LayoutInflater.java:320)

似乎类似于关于SO的一些问题,例如this one

我的问题是这个问题的解决方案感觉非常黑客,这是可以理解的,因为去年Lollipop刚刚进入公开预览时给出了答案。事情发生了变化吗?我如何获得资源?

我尝试过一些东西,例如将.aar导入为模块,但似乎没有任何效果。我已经按照官方文档介绍了如何添加支持库(https://developer.android.com/tools/support-library/setup.html#libs-with-res)但是没有用。另外根据该链接 - 在为Android Studio添加和不使用资源的库之间似乎没有任何区别?

我的app build.gradle包含以下依赖项:

compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.android.support:cardview-v7:21.0.3'
compile 'com.android.support:recyclerview-v7:21.0.3'

这里使用CardView布局

    <android.support.v7.widget.CardView
        xmlns:card="http://schemas.android.com/apk/res-auto"
        android:id="@+id/card_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:foreground="?android:attr/selectableItemBackground"
        card:cardCornerRadius="6dp"
        card:cardUseCompatPadding="true"
        tools:ignore="NewApi">
编辑:三星S2 2.3注意到的问题 - API 19+工作正常

1 个答案:

答案 0 :(得分:3)

?android:attr/selectableItemBackground与平台相关,使用时不带android:前缀来引用AppCompat的属性。