在Android 9中,谷歌宣布
new limitations on accessing non-SDK interface methods by using reflection
如果您的项目使用一个,您将得到一个对话框
Detected problems with API compatibility (visit g.co/dev/appcompat for more info)
StrictMode
类,我能够记录正在使用的反射方法。其中一个由OkHttp库调用:
2019-02-01 13:45:43.260 14892-14892/com.xxx.xxx.xxx W/com.xxx.xxx.xxx: Accessing hidden method Ldalvik/system/CloseGuard;->get()Ldalvik/system/CloseGuard; (light greylist, reflection)
2019-02-01 13:45:43.261 14892-14892/com.xxx.xxx.xxx D/StrictMode: StrictMode policy violation: android.os.strictmode.NonSdkApiUsedViolation: Ldalvik/system/CloseGuard;->get()Ldalvik/system/CloseGuard;
at android.os.StrictMode.lambda$static$1(StrictMode.java:428)
at android.os.-$$Lambda$StrictMode$lu9ekkHJ2HMz0jd3F8K8MnhenxQ.accept(Unknown Source:2)
at java.lang.Class.getDeclaredMethodInternal(Native Method)
at java.lang.Class.getPublicMethodRecursive(Class.java:2075)
at java.lang.Class.getMethod(Class.java:2063)
at java.lang.Class.getMethod(Class.java:1690)
at okhttp3.internal.platform.AndroidPlatform$CloseGuard.get(AndroidPlatform.java:370)
at okhttp3.internal.platform.AndroidPlatform.<init>(AndroidPlatform.java:58)
at okhttp3.internal.platform.AndroidPlatform.buildIfSupported(AndroidPlatform.java:260)
at okhttp3.internal.platform.Platform.findPlatform(Platform.java:201)
at okhttp3.internal.platform.Platform.<clinit>(Platform.java:78)
at okhttp3.internal.platform.Platform.get(Platform.java:84)
at okhttp3.OkHttpClient.newSslSocketFactory(OkHttpClient.java:292)
at okhttp3.OkHttpClient.<init>(OkHttpClient.java:258)
at okhttp3.OkHttpClient$Builder.build(OkHttpClient.java:1040)
我怎样才能摆脱对话?