RecyclerView进行代码混淆后报AbstractMethodError

题外:最近赶完项目2.5版本,在开发过程中碰到了不少问题,为了后续不再踩同一个坑,趁发测了抽空把这些坑都整理一下。

问题:项目中使用RecyclerView展示能横向滑动的多个直播源,debug版本可正常使用,但一旦加入代码混淆后打包的release版本打开就会崩溃,提示java.lang.AbstractMethodError:abstract method "int android.support.v7.wedget.RecyclerView$Adapter.getItemCount()".

分析过程:一开始误以为是与RecyclerView相关联的support包的问题,版本兼容或者是代码混淆该包不正确。但经调试更换support包后该问题依然存在,并且如果不进行代码混淆即可运行,于是确定为代码混淆的问题。修改多次代码混淆配置均无果后,使用工具打开RecyclerView所在的jar后发现其使用的Adapter为抽象类,其中的getCount方法为抽象方法,此时意识到可能是继承的adapter中getCount方法被混淆所致。再次修改混淆配置后,问题得以解决。

解决方式:RecyclerView使用的Adapter不进行代码混淆即可。

你可能感兴趣的:(RecyclerView进行代码混淆后报AbstractMethodError)