构建失败,出现异常原因:IllegalArgumentException,消息:不支持的类文件主要版本 57

问题描述

mxparser 不适用于 jdk13

我正在尝试在我的 android 项目中使用 mxparser。 我下载了 MathParser.org-mXparser-v.4.4.0-jdk13.jar 并将其粘贴到我的项目的 libs 文件夹中。 但是我的应用程序无法构建,构建输出是:

FAILURE:构建失败,出现异常。 什么地方出了错: 任务“:app:mergeDebugJavaResource”执行失败。 无法解析配置“:app:debugRuntimeClasspath”的所有文件。 无法转换 MathParser.org-mXparser-v.4.4.0-jdk13.jar 以匹配属性 {artifactType=android-java-res,org.gradle.libraryelements=jar,org.gradle.usage=java-runtime}。 > JetifyTransform 执行失败:C:\Users\somagani\AndroidStudioProjects\MyApplication\app\libs\MathParser.org-mXparser-v.4.4.0-jdk13.jar。 > 无法使用 Jetifier 转换“C:\Users\somagani\AndroidStudioProjects\MyApplication\app\libs\MathParser.org-mXparser-v.4.4.0-jdk13.jar”。原因:IllegalArgumentException,消息:不支持的类文件主要版本 57。(使用 --stacktrace 运行以获取更多详细信息。)

我在 build.gradle(:app) 文件夹中的依赖项是

dependencies {
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.3.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation files('libs\\MathParser.org-mXparser-v.4.4.0-jdk13.jar')
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}
       

然后我将以下内容添加到我的 build:gradle 项目文件中的依赖项

    classpath 'org.ow2.asm:asm:8.0'
    classpath 'org.ow2.asm:asm-util:8.0'
    classpath 'org.ow2.asm:asm-commons:8.0'

因此出现以下错误

FAILURE:构建失败,出现异常。 什么地方出了错: 任务 ':app:desugarDebugFileDependencies' 执行失败。 执行 com.android.build.gradle.internal.tasks.Workers$ActionFacade 时发生故障 dexing 时出错。

包含以下行没有用,并给出与上述相同的错误

classpath 'org.anarres.jarjar:jarjar-gradle:1.0.1'

请帮我解决这个问题。

解决方法

这是由于库中的 JDK 版本不匹配。该库未更新以支持最新的 JDK 版本。

我已经测试过 jdk10 版本可以完美运行

  • jdk10 版本的库从此文件夹添加到您的 libs 文件夹:
MathParser.org-mXparser-v.4.4.0-bin-only.zip\MathParser.org-mXparser-v.4.4.0-bin-only\bin\jdk10
  • 将此添加到 build.gradle 文件
implementation files('libs/MathParser.org-mXparser-v.4.4.0-jdk10.jar')

其他版本我没试过,你可以试试。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...