Meituan-Dianping / Robust

Robust is an Android HotFix solution with high compatibility and high stability. Robust can fix bugs immediately without a reboot.
Apache License 2.0
4.42k stars 807 forks source link

AutoPatch 成功, 加载逻辑修复成功, 但 patch.jar 反编译异常 #247

Open devLiuGit opened 6 years ago

devLiuGit commented 6 years ago

异常类型:编译异常

Robust版本:0.4.75

Gradle版本:2.14.1

系统:Mac

出现一种情况, autoPatch 成功, 且 Patch 加载后功能修复正常, 但是 patch.jar dex - jar - jdGui 在 jdGui 中出现以下现象, 不能正常反编译为 java 代码. 这种现象正常吗?

/* JADX: method processing error */
/*
Error: jadx.core.utils.exceptions.DecodeException: Load method exception in method: com.ymt360.app.mass.hotfix.APIManagerPatch.buildNetworkRequest(java.lang.String, com.ymt360.app.fetchers.api.IAPIRequest, java.lang.String, com.ymt360.app.entity.ApiEntity):com.ymt360.app.fetchers.network.NetworkRequest
    at jadx.core.dex.nodes.MethodNode.load(MethodNode.java:116)
    at jadx.core.dex.nodes.ClassNode.load(ClassNode.java:249)
    at jadx.core.ProcessClass.process(ProcessClass.java:34)
    at jadx.api.JadxDecompiler.processClass(JadxDecompiler.java:306)
    at jadx.api.JavaClass.decompile(JavaClass.java:62)
Caused by: java.lang.NullPointerException
    at jadx.core.dex.nodes.MethodNode.addJump(MethodNode.java:370)
    at jadx.core.dex.nodes.MethodNode.initJumps(MethodNode.java:356)
    at jadx.core.dex.nodes.MethodNode.load(MethodNode.java:106)
    ... 4 more
*/
        /*
        r0 = this;
        r26 = java.lang.System.out;
        r27 = "robust";
        r28 = "get static  value is out     No:  1";
        android.util.Log.d(r27, r28);
        r27 = "devliu - ymtbase patch Sucessful"; more ....
hedex commented 6 years ago

如果能够正常修复就应该是正常的哈