首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >转化为java noClassDefFoundError的Kotlin模块问题

转化为java noClassDefFoundError的Kotlin模块问题
EN

Stack Overflow用户
提问于 2022-08-22 20:16:45
回答 1查看 287关注 0票数 0

在Android中构建我的项目时,我会得到以下错误。

模块是用不兼容的Kotlin版本编译的。其元数据的二进制版本为1.5.1,预期版本为1.1.16。

我尝试过将我的项目级gradle文件中的Kotlin版本更改为几乎所有可用的稳定版本,但都没有成功。使此错误消失的Kotlin的一两次稳定版本会产生自己的错误。

当前的Gradle版本5.6.4与Kotlin插件不兼容。请使用Gradle 6.1.1或更高版本,或以前版本的Kotlin插件。jav.lang.noClassDefFoundError

代码语言:javascript
运行
复制
Build file 'C:\Users\pictu\Downloads\ble-starter-android-master\ble-starter-android-master\app\build.gradle' line: 18

A problem occurred evaluating project ':app'.
> org/gradle/api/services/BuildService

* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Exception is:
org.gradle.api.GradleScriptException: A problem occurred evaluating project ':app'.
    at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:93)
    at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl$2.run(DefaultScriptPluginFactory.java:227)
    at

...


org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:91)
    ... 130 more
Caused by: java.lang.ClassNotFoundException: org.gradle.api.services.BuildService
    ... 160 more

我尝试过使用multiDex,我尝试过更改Kotlin版本,我尝试过更改compileSdkVersion + minSdkVersion + targetSdkVersion,但是它们都没有起作用。我也看过几个这样的帖子,但我没有发现任何帮助我的具体问题。

更新1:错误消息特别指出了这一行。

应用插件:kotlin-android

更新2: -- this SO post的答案--帮助我得到了进一步的进展。现在,我得到了这个神秘的堆栈跟踪,它提到了一个循环引用。在这种情况下,我还没有发现循环引用是什么。

代码语言:javascript
运行
复制
Invoke-customs are only supported starting with Android O (--min-api 26)
Stack trace:
com.android.tools.r8.a: Invoke-customs are only supported starting with Android O (--min-api 26)
    at com.android.tools.r8.dex.r.a(:289)
    at com.android.tools.r8.dex.r.a(:98)
    at com.android.tools.r8.dex.r.b(:188)
    at com.android.tools.r8.dex.b.a(:63)
    at 

...

    Caused by: [CIRCULAR REFERENCE: com.android.tools.r8.a: Invoke-customs are only supported starting with Android O (--min-api 26)]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-23 00:03:42

这是两个堆栈溢出帖子,引导我找到我的答案(12)。

你需要更新你的等级设置。我使用我引用的第一个帖子的答案中的图表将我的版本升级到了6.1.1版。

您需要做的第二件事是在应用程序级Gradle文件的sourceCompatibility部分中将targetCompatibilityJavaVersion.VERSION_1_8指定为JavaVersion.VERSION_1_8

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73450575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档