Android 应用提示Detected problems with API问题
Posted u013164293
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 应用提示Detected problems with API问题相关的知识,希望对你有一定的参考价值。
问题
每次启动APP提示“Detected problems with API”
原因
android P 后谷歌限制了开发者调用非官方公开API 方法或接口,使用反射调用源码就会出现这个提示弹窗。
非 SDK 接口指的是 Android 系统内部使用、并未提供在 SDK 中的接口,开发者可能通过 Java 反射、JNI 等技术来调用这些接口。但是,这么做是很危险的:非 SDK 接口没有任何公开文档,必须查看源代码才能理解其行为逻辑。但是源码是JAVA写的,万物皆可反射,所以还是可以用反射干掉这个 每次启动都会弹出的提醒窗口。
解决方法
在app的application启动时,调用如下方法可解决:
/**
* 解决androidP 第一次打开程序出现弹窗,“Detected problems with API ”
*/
private void closeAndroidPDialog(){
try {
Class aClass = Class.forName("android.content.pm.PackageParser$Package");
Constructor declaredConstructor = aClass.getDeclaredConstructor(String.class);
declaredConstructor.setAccessible(true);
} catch (Exception e) {
e.printStackTrace();
}
try {
Class cls = Class.forName("android.app.ActivityThread");
Method declaredMethod = cls.getDeclaredMethod("currentActivityThread");
declaredMethod.setAccessible(true);
Object activityThread = declaredMethod.invoke(null);
Field mHiddenApiWarningShown = cls.getDeclaredField("mHiddenApiWarningShown");
mHiddenApiWarningShown.setAccessible(true);
mHiddenApiWarningShown.setBoolean(activityThread, true);
} catch (Exception e) {
e.printStackTrace();
}
}
如果您有其他需要,或者相关内容有什么不完善的地方,请留言给我!!
您也可以加入下方qq群,共同学习进步,感谢参与!!
Android学习交流群:523487222
以上是关于Android 应用提示Detected problems with API问题的主要内容,如果未能解决你的问题,请参考以下文章
Frameworks detected: Android framework is detected in the project
怎样关掉 ubuntu 中的 System Program Problem Detected 提示框
AndroidStudio Frameworks detected: Android framework is detected in the project Configure
android studio github新下拉项目 Android framework is detected.
如何关闭linux(ubuntn)中的"System Program Problem Detected"提示
AndroLua on Lollipop:JNI DETECTED ERROR IN APPLICATION:无法调用static int org.keplerproject.luajava.LuaJ