美文网首页
MVPPlugin插件之混淆踩坑记录

MVPPlugin插件之混淆踩坑记录

作者: feisher | 来源:发表于2017-11-01 15:04 被阅读0次

MVPPlugin简介

原文介绍一键生成MVP相关代码,对于爱生活(懒)的码农来说简直是福音啊

说明

混淆会出现ClassCastException 在

mPresenter= getInstance(this,1);

但不是此插件框架问题

分析

那么到底是什么原因导致了这个错的,我调试的过程中曾一度以为是混淆的时候泛型导致的此问题,百度发现ClassCastException 也基本都是应为混淆中缺少

-keepattributes Signature  

导致的泛型转换问题!结果,添加后依然没有解决!!!mmp

………………(省略各种尝试n种)

打断点依然发现不了,因为混淆后的打断点调试太头疼了,就是一个报错

ClassCastException: ....Object cannot case to  ...BasePresenterImpl

其实这里应该是返回的一个泛型,而这个泛型是方法

public  <T>T getInstance(AppCompatActivity o, int i) {
        try {
            return ((Class<T>) ((ParameterizedType) (o.getClass()
                    .getGenericSuperclass())).getActualTypeArguments()[i])
                    .newInstance();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

泛型是方法的泛型中的类,由于这个方法存在于MVPBaseActivity ,如果继承的acitivity没有调用mPresenter中的方法。泛型就不能够进行有效的传递,导致此问题

结论

正常开发不会出现此问题!!!!既然用到mvp了肯定要在Presenter中有逻辑,测试只继承不写逻辑的情况又去做混淆的概率低到可以忽略,但是不幸的是我碰上了!!

特此记录,引以为戒!

相关文章

  • MVPPlugin插件之混淆踩坑记录

    MVPPlugin简介 原文介绍一键生成MVP相关代码,对于爱生活(懒)的码农来说简直是福音啊 说明 混淆会出现C...

  • Android插件化热修复

    项目实战之插件化VirtualAPK 使用滴滴插件化方案 VirtualApk 源码解析VirtualAPK 踩坑...

  • Kotlin混淆踩坑记录

    你以为你的代码已经开启了混淆,但其实却并没有。 最近项目组里发现这么一个有趣的事情,而且已经存在了好长一段时间。 ...

  • spring easypoi 报错,踩坑记录

    最近项目上需要导入导出 Excel,用到了 easyPoi 这个插件。踩坑过后终于执行成功了。特此记录: 先给个 ...

  • channel ios framework to Flutter

    今天开发Flutter插件,踩了些坑,记录一下1.Android Studio 新建Flutter 项目,选择pl...

  • thinkcmf插件开发踩坑记录

    1 假设有这么一个配置文件,其中首行的ThinkCMF 要么是ThinkCMF 要么就要和插件英文名一致,不然会出...

  • 2020-10-19随笔 踩坑0传值

    踩坑:当值传入0时,if条件判断时候会自己转换,记录踩坑。

  • Weex入门踩坑记录

    Weex入门踩坑记录

  • Android代码混淆&组件化混淆方案

    前言 最近在整理项目中的混淆,踩了很多坑,如果不打开混淆,项目上线了等于裸奔,风险很大,混淆如果打开了处理不好,会...

  • vue中使用swiper插件

    工作中日常笔记,vue中使用swiper插件,在pc端和h5端也是常用的插件,记录下来以便下次查看,避免踩坑。 使...

网友评论

      本文标题:MVPPlugin插件之混淆踩坑记录

      本文链接:https://www.haomeiwen.com/subject/aacgpxtx.html