从android 9开始,系统增加了反射调用限制,有反射调用时有如下错误提示:
office:writer: Accessing hidden field Landroid/graphics/Matrix;->native_instance:J (blocked, reflection, denied)
System.err: java.lang.NoSuchFieldException: No field native_instance in class Landroid/graphics/Matrix; (declaration of 'android.graphics.Matrix' appears in /system/framework/framework.jar)
System.err: at java.lang.Class.getDeclaredField(Native Method)
如果想彻底关闭,按照下面的方法进行关闭后重编系统。
找到art/runtime/native/dalvik_system_ZygoteHooks.cc
注掉下面的检查行(如下图):
//api_enforcement_policy = hiddenapi::EnforcementPolicyFromInt(
// (runtime_flags & HIDDEN_API_ENFORCEMENT_POLICY_MASK) >> API_ENFORCEMENT_POLICY_SHIFT);