SDK 19及以下版本无法识别android.support.v7.widget.CardView,错误:无法膨胀类

5 浏览
0 Comments

SDK 19及以下版本无法识别android.support.v7.widget.CardView,错误:无法膨胀类

在我的Xml文件中,我有一个cardView。当我在SDK 23上运行我的应用时,它工作正常,但是当我在SDK 19或SDK 16上运行时,它不工作并且抛出以下错误:

E/AndroidRuntime: FATAL EXCEPTION: main

android.view.InflateException: Binary XML file line #10: Error inflating class

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;

}

有什么线索为什么会发生这种情况吗?

0
0 Comments

SDK 19及以下版本无法识别android.support.v7.widget.CardView,导致出现Error inflating class 的问题。解决方法是:打开项目结构,点击添加库依赖项,选择com.android.support:cardview-v7:23.2.1,点击确定即可解决问题。

具体操作步骤如下:

1. 打开项目结构。

2. 点击添加库依赖项。

3. 在依赖库中选择com.android.support:cardview-v7:23.2.1。

4. 点击确定,完成添加库依赖项的操作。

通过以上操作,即可解决SDK 19及以下版本无法识别android.support.v7.widget.CardView的问题。

点击以下链接查看相关图片:

- [https://i.stack.imgur.com/AhYIN.png](https://i.stack.imgur.com/AhYIN.png)

- [https://i.stack.imgur.com/jDCGN.png](https://i.stack.imgur.com/jDCGN.png)

0
0 Comments

问题的原因是,CardView和RecyclerView等视图是在Android 5.0(API 20)及更高版本中添加的。虽然它们添加到了支持库中,但这并不意味着开发人员可以在旧版本的SDK中使用它们。开发人员通常会使用最新版本的SDK来开发应用程序。

解决方法是将编译SDK版本从23更改为19,并将依赖中的v7支持库版本从23.4.0更改为19.4.0。具体步骤如下:

1. 在依赖中找到com.android.support:cardview-v7:23.4.0,将其更改为com.android.support:cardview-v7:19.4.0

2. 将编译SDK版本从23更改为19。

这样做可以解决在SDK 19及以下版本中无法识别android.support.v7.widget.CardView的问题。

如果还有疑问,可以参考这个链接:stackoverflow.com/questions/29982535/…

0