Closed weiyixiong closed 4 years ago
因为R8生成的mapping文件的格式与Proguard不一致导致Robust在读取mapping文件时解析错了方法名。 对ReadMapping.java做出如下修改就可兼容R8了。因为代码较短就不提merge了。希望能帮助到其它人。作者看到可以更新一下代码然后关了这个issue就好了
public String getMethodSigureWithReturnTypeInMapping(String returnTypeWithNumber, String methodSignure) { //初步观察mapping文件,使用":"来截取返回值,还可以通过寻找第一个字符, if (methodSignure.contains(":")) { //兼容R8 return getMethodSignureWithReturnType(returnTypeWithNumber.substring(returnTypeWithNumber.lastIndexOf(":") + 1), methodSignure.substring(0, methodSignure.indexOf(":"))); } return getMethodSignureWithReturnType(returnTypeWithNumber.substring(returnTypeWithNumber.lastIndexOf(":") + 1), methodSignure); }
实测可用,否则R8混淆得到的mappings文件,在生成patch时会报错
感谢反馈
代码已同步,非常感谢
因为R8生成的mapping文件的格式与Proguard不一致导致Robust在读取mapping文件时解析错了方法名。 对ReadMapping.java做出如下修改就可兼容R8了。因为代码较短就不提merge了。希望能帮助到其它人。作者看到可以更新一下代码然后关了这个issue就好了