本来以为这个方案没有兼容问题,现在发现自动化patch中把modify方法修改为反射的时候会出现android版本兼容问题。
问题是这样的:ImageView中setVisibility方法在7.0源码里面被删掉了,7.1之后又加回来了。所以如果compileSdkVersion不是24,将imageview.setvisiblity(View.GONE)转成反射就是EnhancedReflectUtils.invokeReflectMethod("setVisibility",imageView, new Object[]{new Integer(8)}, new Class[]{Integer.TYPE}, ImageView.class);这行代码运行在7.0手机上就会必然报错。
问题的出现与compileSdkVersion有关,生成的patch文件中需要处理这种删除方法的情况。
本来以为这个方案没有兼容问题,现在发现自动化patch中把modify方法修改为反射的时候会出现android版本兼容问题。 问题是这样的:ImageView中setVisibility方法在7.0源码里面被删掉了,7.1之后又加回来了。所以如果compileSdkVersion不是24,将imageview.setvisiblity(View.GONE)转成反射就是EnhancedReflectUtils.invokeReflectMethod("setVisibility",imageView, new Object[]{new Integer(8)}, new Class[]{Integer.TYPE}, ImageView.class);这行代码运行在7.0手机上就会必然报错。 问题的出现与compileSdkVersion有关,生成的patch文件中需要处理这种删除方法的情况。