新手日常踩雷区,留下此贴,希望下次不会再这样折腾,一开始报错,因为手机连不上电脑不好调试,所以发现在app gradle中配制以下代码可以开启debug安卓模拟机开启安装模式调试:
signingConfigs {
release {
}
debug{
}
}
buildTypes {
release {
// 不显示Log
buildConfigField "boolean", "LOG_DEBUG", "false"
//开启代码混淆
minifyEnabled true
//shrinkResources true // 移除无用的resource文件
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release //使用上述签名信息
}
debug {
//开启代码混淆
minifyEnabled true
//shrinkResources fa// 移除无用的resource文件
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.debug
}
}
然后发现报
java.lang.NullPointerException: Attempt to invoke interface method
'int java.util.List.size()' on a null object reference
at com.*.*.a.b.getItemCount
(Unknown Source)
注意这个地方是List.size(),空。
解决:所有model类不要混淆。
解决方式:所有的gson解析实体类都不用混淆,否则数据没有,会报错误。
-keep class 你的自定义gson解析包或类路径.**{*;}
好了,愿自己不再踏坑。