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

org.codehaus.groovy.GroovyException #165

Closed xiepeijie closed 6 years ago

xiepeijie commented 7 years ago

异常类型:app运行时异常/编译异常

手机型号:如:Nexus 5(如是编译异常,则可以不填)

手机系统版本:如:Android 5.0 (如是编译异常,则可以不填)

Robust版本:如:0.4.5

Gradle版本:如:2.10

系统:如:Mac

堆栈/日志: org.codehaus.groovy.GroovyException: patch method com.xxx.xxx.xxx.init(android.content.Context,java.lang.String,java.lang.String) haven't insert code by Robust.Cannot patch this method, method.signature (Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)V
at com.meituan.robust.autopatch.ReadAnnotation.addPatchMethodAndModifiedClass(ReadAnnotation.groovy:134) at com.meituan.robust.autopatch.ReadAnnotation$_scanClassForModifyMethod_closure4.doCall(ReadAnnotation.groovy:85) at com.meituan.robust.autopatch.ReadAnnotation.scanClassForModifyMethod(ReadAnnotation.groovy:80) at com.meituan.robust.autopatch.ReadAnnotation$_readAnnotation_closure1.doCall(ReadAnnotation.groovy:36) ... 87 more

以上异常按照常见问题的方式进行处理,试了很多次,还是这个异常,这句话:“在调用该方法的方法处修复”,也可能是我没正确理解你们的文字解释,能给个具体的示例说明吗?急急急 望答复!!! 感谢!!!

mivanzhang commented 7 years ago

参看 https://github.com/Meituan-Dianping/Robust/wiki/%E7%94%9F%E6%88%90%E8%A1%A5%E4%B8%81%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98 ,如果是泛型和lamdba表达式 你使用Robust.modify()来试试

xiepeijie commented 7 years ago

@mivanzhang 我在项目的源码插入了下面2行代码

public final void onAppEvent(SDKImpl.ApiData aData){
        RobustModify.modify();
        Log.i("log", "onAppEvent: patch");
                ......
}

然后执行./gradlew clean assembleRelease --stacktrace --no-daemon生成补丁,却报另一个错: What went wrong: Execution failed for task ':demo:transformClassesWithAutoPatchTransformForRelease'.

patch method is empty ,please check your Modify annotation or use RobustModify.modify() to mark modified methods ......

mivanzhang commented 7 years ago

那是不是methodid.robust这个文件搞错了?

xiepeijie commented 7 years ago

@mivanzhang 😯哦,我再全部重新操作一遍试试

mivanzhang commented 7 years ago

恩恩,有问题及时反馈

ghost commented 7 years ago

我也有这个问题 并且方法不是简单字符串操作,有逻辑判断

mivanzhang commented 7 years ago

show me your code @AaronZhang9511