Android弹窗Detected problems with API compatibility(visit g.co/dev/appcompat for more info)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/rikkatheworld/article/details/89299287

在这里插入图片描述
出现该弹窗的原因是Android P禁止了非官方API的调用,如果你用了一些别的sdk接口,就会有这样的弹窗问题。
解决方法是,通过反射在不让系统弹出这个窗口:

//application.java
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();
        }
    }

猜你喜欢

转载自blog.csdn.net/rikkatheworld/article/details/89299287