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

Android studio com.android.tools.r8.a:MethodHandle.invoke和MethodHandle.invokeExact仅从android O(--min api 26)开始支持,android-studio,dependencies,apache-poi,build.gradle,Android Studio,Dependencies,Apache Poi,Build.gradle,实现“org.apache.poi:poi:5.0.0” 当我使用run“app”在模拟器/手机上运行时,上述依赖项工作正常,但 当我尝试构建apk时,我得到了以下错误 com.android.tools.r8.a:MethodHandle.invoke和MethodHandle.invokeExact仅从android O(--min api 26)开始支持 我在下面试试 如果我删除依赖项,它就可以正常工作 如果我将minsdkversion21更新为26,那么它可以正常工作 所以我的问题

实现“org.apache.poi:poi:5.0.0”

当我使用run“app”在模拟器/手机上运行时,上述依赖项工作正常,但 当我尝试构建apk时,我得到了以下错误

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

我在下面试试

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

  • 如果我将minsdkversion21更新为26,那么它可以正常工作

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

    那么,我如何才能实现同样的目标呢


    提前谢谢。

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

    在解除这一限制方面存在着一个新的挑战。但是,根据库中的代码,如果在API级别为25或更低的设备上运行时命中使用调用自定义和方法句柄的代码,则这可能最终成为运行时错误

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