Android studio 开启debug、release混淆模式和混淆打包安装后报错NullPointerException int java.util.List.size()

新手日常踩雷区,留下此贴,希望下次不会再这样折腾,一开始报错,因为手机连不上电脑不好调试,所以发现在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解析包或类路径.**{*;}

 

好了,愿自己不再踏坑。

参考地址:http://blog.csdn.net/tou_star/article/details/70256011

你可能感兴趣的:(Android)