如何修复Android兼容性警告

如何修复Android兼容性警告,android,Android,我有一个针对Android 9的应用程序,我在Google Play发布前报告中注意到一个新的部分,叫做Android兼容性。这个新的部分列出了与使用不受支持的API有关的警告或错误。以下是其中一个问题,并作为灰色列表API列出。有人能解释一下在这种情况下哪一个是不受支持的API吗?这种用法似乎来自Android支持库,而不是我的代码 StrictMode policy violation: android.os.strictmode.NonSdkApiUsedViolation: Landro

我有一个针对Android 9的应用程序,我在Google Play发布前报告中注意到一个新的部分,叫做Android兼容性。这个新的部分列出了与使用不受支持的API有关的警告或错误。以下是其中一个问题,并作为灰色列表API列出。有人能解释一下在这种情况下哪一个是不受支持的API吗?这种用法似乎来自Android支持库,而不是我的代码

StrictMode policy violation: android.os.strictmode.NonSdkApiUsedViolation: Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V
    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 android.support.v7.widget.ViewUtils.makeOptionalFitsSystemWindows(ViewUtils.java:84)
    at android.support.v7.app.AppCompatDelegateImpl.createSubDecor(AppCompatDelegateImpl.java:685)
    at android.support.v7.app.AppCompatDelegateImpl.ensureSubDecor(AppCompatDelegateImpl.java:518)
    at android.support.v7.app.AppCompatDelegateImpl.onPostCreate(AppCompatDelegateImpl.java:299)
    at android.support.v7.app.AppCompatActivity.onPostCreate(AppCompatActivity.java:98)
    at android.app.Instrumentation.callActivityOnPostCreate(Instrumentation.java:1342)
    at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3002)
    at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:180)
    at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:165)
    at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:142)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1816)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6718)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

我想现在我们无能为力,只能等待他们在AndroidX中修复这些问题(因为支持库将不再更新)。

如前所述,这些方法使用反射,那么为什么会出现警告。

将3行代码添加到应用程序的build.gradle文件中解决了我的非dkapiusedviolation问题

buildTypes {
        release {
            
            ....... // your code
            
            shrinkResources false
            zipAlignEnabled false
            minifyEnabled false
        }
    }

修改gradle文件后,请确保清理项目,然后构建版本apk

可能重复,请检查我不认为这是相同的问题。我得到的警告(请注意,这是一个警告-我没有任何应用程序崩溃)是针对非DKapiusedViolation的-这与由于磁盘在主线程上执行磁盘操作而导致的StrictModeDiskReadViolation不同。这个警告出现在Google Play vitals部分。到目前为止,我遇到了与您找到的任何解决方案相同的问题…??感谢您提供的信息,但是我不知道如何解决这个问题。此外,在发布版本中关闭minify也不是一件聪明的事情(即使我仍然不明白为什么这样做可以解决问题)。@a.p.我也尝试过很多不同的方法。最后,meThis的这项工作不是发布版本的解决方案。@UdayadityaBarua可能是。但我的问题是通过以下方式解决的。无论如何,我的发布版本现在也在play store和app store中。