【问题标题】:Android Build.VERSION.SDK_INT returning api 22 but emulator is on api 23Android Build.VERSION.SDK_INT 返回 api 22 但模拟器在 api 23
【发布时间】:2026-01-03 05:45:01
【问题描述】:

我为 Marshmallow (MNC) 安装了模拟器,但是当我调用 Build.VERSION.SDK_INT 时,它返回给我 22。它具有 MNC 的功能,因为它具有运行时权限等,并且调用工作但它只是关闭的构建版本.这怎么能解决。

所以要明确一点,代码Build.VERSION.SDK_INT 在 api 23 模拟器上返回 22,为什么?

【问题讨论】:

    标签: android android-emulator android-mnc


    【解决方案1】:

    我认为这取决于模拟器上的预览版本。我对我的 Nexus 6 设备也有同样的效果。在 M Preview 3 更新后,返回了正确的版本 (23),对于以前的版本,它是 22。

    我的解决方法是检查 RELEASE 属性,该属性是“M”,在 Preview 3 上将返回“Marshmallow”。

    【讨论】:

    • Build.VERSION.RELEASE.equals("M")
    • Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP_MR1 看起来更好,但如果 lolipop 获得另一个 MR,它会破坏我试图做的事情。我会采取你的方式,但我不确定生产版本是“M”。我怎么知道?
    • 你认为 Build.VERSION.SDK_INT > 22 会更好吗?
    • 对于您的模拟器,您可以检查版本“M”,但对于版本 APK,您可以检查版本 > 22。我认为在 M 的 Preview 1 或 2 上运行的设备并不多.