【问题标题】:android.tools.r8.a:MethodHandle.invoke and MethodHandle.invokeExact are only supported starting with Android O (--min-api 26) after installing itext7android.tools.r8.a:MethodHandle.invoke 和 MethodHandle.invokeExact 仅在安装 itext7 后从 Android O (--min-api 26) 开始支持
【发布时间】:2022-01-11 18:24:02
【问题描述】:

安装 itext7 后出现以下错误:

com.android.tools.r8.a: MethodHandle.invoke and MethodHandle.invokeExact are only supported starting with Android O (--min-api 26)
implementation "com.itextpdf:itext7-core:7.1.3"

我尝试了以下解决方案,但也没有用:

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

另外,我尝试将itext的版本降级为implementation "com.itextpdf:itext7-core:5.0.6",也没有用。

谁能帮助我解决这个问题?谢谢

【问题讨论】:

    标签: android android-studio itext build.gradle itext7


    【解决方案1】:

    错误信息

    MethodHandle.invoke and MethodHandle.invokeExact are only supported starting with Android O (--min-api 26)
    

    是由输入程序使用其中一种方法(MethodHandle.invokeMethodHandle.invokeExact)引起的。

    由于这些方法的使用都来自库

    implementation "com.itextpdf:itext7-core:7.1.3"
    

    唯一直接的解决方案是将您的最小 SDK(build.gradle 中的android.defaultConfig.minSdk)更改为 26。这将导致您的应用只能在 Android 8.0 及更高版本上运行。

    或者,如果使用这些 API 的代码路径并没有被您的应用实际使用,那么打开 R8 shrinking 也可以工作,因为这样有问题的代码将在抖动期间从程序中删除。

    最后,您还可以联系库开发人员,看看他们是否有特定于 Android 的版本,或者是否有兴趣通过避免有问题的 API 来支持 Android。

    【讨论】:

      【解决方案2】:

      最后,这就是我通过提高 iText 版本来解决它的方法:

      implementation "com.itextpdf:itext7-core:7.1.10"
      

      【讨论】:

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