notifyItemChanged 闪退

在使用 notifyItemChanged() 更新 指定item时 闪退
报的错如下:

java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/animation/AnimatorCompatHelper;

简单的方法时通过设置
mRecyclerView.setItemAnimator(null);即可解决

后来查资料才发现
是因为我的android support包版本有问题
根本原因是gradle中声明的RecycleView的方式是:

implementation 'com.android.support:recyclerview-v7:24.2.1'

而在前面定义了AppCompat的声明

implementation 'com.android.support:appcompat-v7:27.1.1'

RecycleView在support24.2.1中需要使用AnimatorCompatHe,而gradle抓取的support库的版本是依赖前面的AppCompat的定义27.1.1版本,这个版本将AnimatorCompatHe库去掉了,因此会导致运行RecycleView的时候报NoClassDefFoundError的错误,修改方式是将RecycleView后面的support库版本改成27.1.1重新sync gradle编译后不再报错。

你可能感兴趣的:(android项目用到)