【问题标题】:com.android.tools.r8.a: MethodHandle.invoke and MethodHandle.invokeExact are only supported starting with Android O (--min-api 26)com.android.tools.r8.a:仅从 Android O 开始支持 MethodHandle.invoke 和 MethodHandle.invokeExact (--min-api 26)
【发布时间】:2021-04-26 18:39:52
【问题描述】:

实现'org.apache.poi:poi:5.0.0'

当我使用 Run 'app' 在模拟器/手机上运行时,上述依赖项工作正常,但是 当我尝试构建 apk 时,出现以下错误。

com.android.tools.r8.a:MethodHandle.invoke 和 MethodHandle.invokeExact 仅支持从 Android O (--min-api 26) 开始

我在下面试试

  1. 如果我删除依赖项,它就可以正常工作。

  2. 如果我将 minSdkVersion 21 更新为 26,那么它工作正常。

所以我的问题是 我想使用 minsdkversion 21 以及该依赖项(此功能(EXCEL 文件)仅适用于 sdkversion>=26)

那么我怎样才能达到同样的效果呢?

提前致谢。

【问题讨论】:

    标签: android-studio dependencies apache-poi build.gradle


    【解决方案1】:

    目前这是不可能的。 D8 将只允许编译使用调用自定义和方法句柄的代码,minSdkVersion 为 26 或更高,因为这是 Android 支持这些功能的第一个版本。

    有一个open issue 用于解除该限制。但是,根据库中的代码,如果使用调用自定义和方法句柄的代码将在运行时在 API 级别为 25 或更低的设备上被命中,这可能会最终成为运行时错误。

    您可以从 Android Studio 运行代码的原因是,在设备或模拟器上进行调试时,Android Studio 会“人为地”将构建的 minSdkVersion 提升到附加的设备或模拟器的构建。这是为了利用设备或模拟器所支持的功能提供最佳的开发体验。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-05
      • 2020-12-16
      • 2021-03-27
      • 1970-01-01
      • 1970-01-01
      • 2020-03-11
      • 2019-09-12
      相关资源
      最近更新 更多