【问题标题】:java.lang.NoSuchMethodError: No static method isAtLeastS()Z in classjava.lang.NoSuchMethodError:类中没有静态方法 isAtLeastS()Z
【发布时间】:2022-10-24 20:52:23
【问题描述】:

在我将 targetSdkVersion 和 compileSdkVersion 升级到 31 后,应用程序崩溃了。 我已经尝试了link 中的所有答案,但仍然面临同样的问题。 每次我尝试打开应用程序时都会出现此错误

java.lang.NoSuchMethodError: No static method isAtLeastS()Z in class Landroidx/core/os/BuildCompat; or its super classes (declaration of 'androidx.core.os.BuildCompat' appears in /data/app/~~6PPcQbptT87_5h04ffIgXg

【问题讨论】:

  • 关于这个问题的任何更新?

标签: java android-studio build.gradle android-12


【解决方案1】:

我遇到了一个非常相似的错误。根据我的理解,有两种选择:

  • 从该接口中删除该静态方法
  • 将最小 SDK 设置为 24

我仍然不确定为什么会这样。然而here 是一种猜测:

在 API 24 中引入了对 Android 中静态接口方法的支持。为了促进最低版本或目标版本设置低于 24 的 Android 项目的向后兼容性,Android 构建工具(可能是 d8?)将接口的所有静态方法提取到一个单独的类(类似于 Xamarin 绑定工具如何为包含静态方法的接口生成附加类),其名称为接口名称 + "$-CC",并修改调用代码以调用该类中的静态方法.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-21
    • 2018-05-20
    • 2016-12-27
    • 1970-01-01
    • 2019-09-05
    • 2018-04-10
    相关资源
    最近更新 更多