10.0 以上系统提示: Accessing hidden method********* 诸如此类的问题主要是Google 限制了隐藏方法通过反射调用,使用以下代码在, 业务代码调用前先执行可以解决以上问题。 if (SDK_INT < Build.VERSION_CODES.P) { return; } try { Method forName = Class.class.getDeclaredMethod("forName", String.class); Method getDeclaredMethod = Class.class.getDeclaredMethod("getDeclaredMethod", String.class, Class[].class); Class<?> vmRuntimeClass = (Class<?>) forName.invoke(null, "dalvik.system.VMRuntime"); Method getRuntime = (Method) getDeclaredMethod.invoke(vmRuntimeClass, "getRuntime", null); Method setHiddenApiExemptions = (Method) getDeclaredMethod.invoke(vmRuntimeClass, "setHiddenApiExemptions", new Class[]{String[].class}); Object sVmRuntime = getRuntime.invoke(null); setHiddenApiExemptions.invoke(sVmRuntime, new Object[]{new String[]{"L"}}); } catch (Throwable e) { Log.e("[error]", "reflect bootstrap failed:", e); }
android 10.0 以上隐藏方法无法调用 #Accessing hidden method
最新推荐文章于 2024-05-11 09:57:55 发布