Robust
Robust copied to clipboard
Kotlin中集成出现空指针
异常类型:app运行时异常
手机型号:
手机系统版本:
Robust版本:0.4.99
Gradle版本:4.0
系统:Mac
堆栈/日志:
private fun getPatch() { PatchExecutor(applicationContext, PatchManipulateImp(), RobustCallBackImp()).start() } 这样一个方法,在基础包是这样的 想修改为 private fun getPatch() { viewModel.getPatch() } viewModel是这样定义的 val viewModel by viewModel<HomeActivityViewModelImpl>() @Modify 和RobustModify.modify()都试过了,都会报下面的错 W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[])' on a null object reference 2020-08-14 11:16:17.682 22236-22236/? W/System.err: at com.meituan.robust.utils.EnhancedRobustUtils.invokeReflectMethod(EnhancedRobustUtils.java:2) 2020-08-14 11:16:17.682 22236-22236/? W/System.err: at xxx.robust.patch.MainTabActivityPatch.getPatch(MainTabActivityPatch.java:131) 2020-08-14 11:16:17.682 22236-22236/? W/System.err: at xxx.robust.patch.MainTabActivityPatch.RobustPublicgetPatch(MainTabActivityPatch.java) 2020-08-14 11:16:17.682 22236-22236/? W/System.err: at xxx.robust.patch.MainTabActivityPatchControl.accessDispatch(PatchTemplate.java) 2020-08-14 11:16:17.682 22236-22236/? W/System.err: at com.meituan.robust.PatchProxy.accessDispatch(PatchProxy.java:9) 2020-08-14 11:16:17.682 22236-22236/? W/System.err: at com.meituan.robust.PatchProxy.proxy(PatchProxy.java:4)
我有测试了一下上面的, private fun getPatch() { val temp : String = getArray()[0] } private fun getArray():Array<String>{ return arrayOf("啊啊啊啊","ssssssss") } 修改为 @Modify private fun getPatch() { Log.i("lldebug", "maintab detail") Log.i("lldebug", "maintab detail") Log.i("lldebug", "maintab detail") val temp : String = getArray()[1] } 还是会报Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[])' on a null object reference 我反编译patch.jar应该是没找到getArray()这个方法,怎么会找不到这个方法呢,我又 @Add了一个和getArray相同功能的方法,还是找不到,这是为什么?在patch.jar中没有我新加的方法 @w4lle @mivanzhang