混淆时报 'int java.lang.String.hashCode()' on a null object reference

雕·不懒惰 Android  2021-03-29 04:03:30
private void processAction(Data data) {
switch (data.getAction_name()) { <-------这里170行报错 data.getAction_name()返回string
case "app_install":
downloadFile(data, new ActionResult());
break;
case "app_uninstall":
unInstallApp(data, new ActionResult());
break;
case "app_run":
startApp(data, new ActionResult());
break;
case "app_stop":
stopApp(data, new ActionResult());
break;

打包不添加混淆是正常的,混淆打包就报错
FATAL EXCEPTION: main
Process: cn.mdisplay.anboard, PID: 1371
java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.hashCode()' on a null object reference
at cn.mdisplay.anboard.main.SmtService.a(SmtService.java:170)
...全文
131 点赞 收藏 3
写回复
3 条回复
实体类,Data,不能混淆
回复 点赞
雕·不懒惰 03月30日
引用 1 楼 立青_ 的回复:
估计用到了反射,用到了反射的肯定要加混淆白名单。data.getAction_name()得到的是null,getAction_name()里面是怎么写的?

public class Data {
    /**
     * action_name : app_install
     * options : {"apk_md5":"c9f0f895fb98ab9159f51fd0297e236d","apk_url":"http://"}
     * task_id : d34cc853-1130-4d01-8031-ad689cbe2b87
     */

    private String action_name;
    private OptionsBean options;
    private String task_id;
就是gsonformat转换的bean,set get,没其他的
回复 点赞
立青_ 03月29日
估计用到了反射,用到了反射的肯定要加混淆白名单。data.getAction_name()得到的是null,getAction_name()里面是怎么写的?
回复 点赞
发动态
发帖子
Android
创建于2009-10-09

4.6w+

社区成员

9.0w+

社区内容

移动平台 Android
社区公告
暂无公告