
原因是Android P之后Google限制了开发者调用非公开的API方法,例如使用反射去调用SDK内部的非公开方法,这样启动app的时候就会弹窗提示,不过我们还是可以通过反射把他干掉【手动狗头】
解决方法参考:
public void closeAndroidPDialog() {
try {
Class packageCls = Class.forName("android.content.pm.PackageParser$Package");
Constructor declaredConstructor = packageCls.getDeclaredConstructor(String.class);
declaredConstructor.setAccessible(true);
Class atCls = Class.forName("android.app.ActivityThread");
Method declaredMethod = atCls.getDeclaredMethod("currentActivityThread");
declaredMethod.setAccessible(true);
Object activityThread = declaredMethod.invoke(null);
Field mHiddenApiWarningShown = atCls.getDeclaredField("mHiddenApiWarningShown");
mHiddenApiWarningShown.setAccessible(true);
mHiddenApiWarningShown.setBoolean(activityThread, true);
} catch (Exception e) {
e.printStackTrace();
}
}