在我的 XML 文件中,我有一个卡片视图(cardView)。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_height="wrap_content"
android:paddingLeft="4dp"
android:paddingRight="4dp"
android:paddingBottom="2dp">
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:foreground="?android:attr/selectableItemBackground"
android:id="@+id/channel_cardview"
app:cardBackgroundColor="@android:color/white"
app:cardElevation="2dp"
app:cardMaxElevation="2dp"
app:cardUseCompatPadding="true">
.... some other elements here
</RelativeLayout>
当我在SDK 23上运行我的应用程序时,它可以正常工作。但是当我在SDK 19或SDK 16上运行时,就不工作并报错:
E/AndroidRuntime: FATAL EXCEPTION: main
android.view.InflateException: Binary XML file line #10: Error inflating class <unknown>
at android.view.LayoutInflater.createView(LayoutInflater.java:613)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
at pb.pocketboard.ChannelFragment$ChannelsAdapter.onCreateViewHolder(ChannelFragment.java:578)
at pb.pocketboard.ChannelFragment$ChannelsAdapter.onCreateViewHolder(ChannelFragment.java:537)
at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:5482)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4707)
错误指向第10行,这是cardViewCLass
,
可能系统无法识别Cardview
类,因此我搜索了相关问题,问题在于未添加依赖项,但我已经添加了。
我的Gradle:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:design:23.4.0'
compile 'com.mikhaellopez:circularimageview:2.1.1'
compile 'com.isseiaoki:simplecropview:1.0.16'
compile 'com.android.support:recyclerview-v7:23.4.0'
compile 'com.android.support:cardview-v7:23.4.0'
compile 'com.android.support:support-v4:23.4.0'
compile('com.github.afollestad.material-dialogs:core:0.8.5.3@aar') {
transitive = true
}
compile files('libs/commons-io-2.4.jar')
}
我的 Java 类,在其中填充布局。
@Override
public ChannelsViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View rowView = inflater.inflate(R.layout.custom_channel_row, parent, false); // error is here
ChannelsViewHolder holder = new ChannelsViewHolder(rowView , this);
return holder;
}
有什么线索导致这种情况发生吗?