如题,继承BaseQuickAdapter和BaseViewHolder后,在Debug环境没问题,而在Release环境混淆后 直接报类转换异常,已经配置不混淆泛型了.但是还是报这个错误,有没有解决过的.
我是用的BaseQuickAdapter的Databinding使用方法.
如题,继承BaseQuickAdapter和BaseViewHolder后,在Debug环境没问题,而在Release环境混淆后 直接报类转换异常,已经配置不混淆泛型了.但是还是报这个错误,有没有解决过的.
我是用的BaseQuickAdapter的Databinding使用方法.
参考链接 http://www.jianshu.com/p/b343fcff51b0
自定义ViewHolder
需要继承BaseViewHolder
public class MovieViewHolder extends BaseViewHolder 然后修改adapter的第二个泛型为自定义的ViewHolder
public class DataBindingUseAdapter extends BaseQuickAdapter<Movie, DataBindingUseAdapter.MovieViewHolder> 注意:需要单独建一个外部类继承BaseViewHolder,否则部分机型会出现ClassCastException,如果是内部类的构造方法要是public,定义的那个类也最好是public。
混淆
-keep class com.chad.library.adapter.* { ; } -keep public class extends com.chad.library.adapter.base.BaseQuickAdapter -keep public class extends com.chad.library.adapter.base.BaseViewHolder -keepclassmembers class $ extends com.chad.library.adapter.base.BaseViewHolder {
你好,我就是参考wiki和demo进行配置的,混淆也一早就配置了.但是就会出现这个错误.后面即时我补了-keep public class extends com.chad.library.adapter.base.MyAdapter -keep public class extends MyViewHolder -keepclassmembers class $ extends MyViewHolder{ (...); } 还是无效,最终我是这样解决的.将自定义继承的ViewHolder,Adapter放在同一个包下,然后将包里的所有类混淆 -keep class com.mypackage.adapter.*{;} 这样才能解决.
@lhalcyon 版本号是?
compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.30'
升级最新版试试
...暂时不升级了,我那样混淆解决了问题.生产版本出了这个问题,吓了我一身冷汗. 尴尬的是发生产测试包的时候,列表没有数据,所以没有测出来.等列表有数据的时候 ,App闪退了.-_-b
行,有空你可以升级一下试试,我们这边也会针对你的问题进行处理的。要是最新版本还有问题可以再提,实在不好意思。
我用的2.9.46版本 也是混淆后抛出了类型转换异常
有兄弟解决了吗 ?我的是用了 databinding 的 BaseDataBindingHolder