项目中采用了MVPPlugin 插件,正常开发的时候是正常的,然后混淆打包时,凉凉!
根据日志定位到了
在build.gradle 中 添加
buildTypes {
debug{
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
可方便定位问题
MVPBaseActivity 中的
public <T> T getInstance(Object o, int i) {
try {
return ((Class<T>) ((ParameterizedType) (o.getClass()
.getGenericSuperclass())).getActualTypeArguments()[i])
.newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassCastException e) {
e.printStackTrace();
}
return null;
}
这个方法,因为返回的是泛型,而且是在baseActivity中,如果继承该类的 类 没有调用 mPresenter 中的方法,则泛型就会出错
解决:
在那些不需要调用mPresenter方法的类中,写个空方法调用一下就可以了。