我在我的项目中使用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+工作正常
答案 0 :(得分:3)
?android:attr/selectableItemBackground
与平台相关,使用时不带android:
前缀来引用AppCompat的属性。