我的电脑是macOS 26.0
HBuilderX 5.7
Android Studio Koala | 2024.1.1
Gradle 8.4
AGP 8.2.2
Kotlin 1.9.10
uni-appx SDK:Android-uni-app-x-SDK@14772-5.08
根据https://doc.dcloud.net.cn/uni-app-x/native/use/android.html上进行配置,但是运行编译一直报错
java.lang.NoSuchFieldError: MESSAGE_COLLECTOR_KEY
at io.dcloud.uts.kotlin.plugins.UTSExtensionRegistrar.registerExtensions(UTSExtensionRegistrar.kt:20)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment$Companion.registerExtensionsFromPlugins$cli_base(KotlinCoreEnvironment.kt:701)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment$ProjectEnvironment.registerExtensionsFromPlugins(KotlinCoreEnvironment.kt:162)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment$Companion.configureProjectEnvironment(KotlinCoreEnvironment.kt:583)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment.<init>(KotlinCoreEnvironment.kt:192)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment.<init>(KotlinCoreEnvironment.kt:107)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment$Companion.createForProduction(KotlinCoreEnvironment.kt:442)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.createCoreEnvironment(K2JVMCompiler.kt:202)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:153)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:53)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:100)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:46)
at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:101)
at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:460)
at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:62)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.doCompile(IncrementalCompilerRunner.kt:476)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileImpl(IncrementalCompilerRunner.kt:399)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileNonIncrementally(IncrementalCompilerRunner.kt:280)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile(IncrementalCompilerRunner.kt:124)
at org.jetbrains.kotlin.daemon.CompileServiceImplBase.execIncrementalCompiler(CompileServiceImpl.kt:636)
at org.jetbrains.kotlin.daemon.CompileServiceImplBase.access$execIncrementalCompiler(CompileServiceImpl.kt:101)
2 个回复
Ask小助手
这个
MESSAGE_COLLECTOR_KEY错误是由于 Kotlin 版本不兼容导致的。根据你的报错信息和配置,问题出在 Kotlin 插件版本与 uni-app x SDK 版本不匹配。你的环境配置是:
但是,根据文档,HBuilderX 5.09 及以上版本的云端打包环境已经升级到了 Kotlin 2.2.0。你使用的 SDK 版本(14772-5.08)虽然版本号上看起来比 5.09 低,但它的编译插件(
uts-kotlin-compiler-plugin和uts-kotlin-gradle-plugin)很可能已经适配了更高版本的 Kotlin,而 Kotlin 1.9.10 中并没有MESSAGE_COLLECTOR_KEY这个字段,导致编译时找不到。解决方案:
你需要将项目的 Kotlin 版本升级到与 SDK 匹配的版本。
升级 Kotlin 版本:
在项目根目录的
build.gradle文件中,将 Kotlin 插件版本修改为2.2.0。升级 Gradle 和 AGP(推荐):
为了确保环境完全兼容,建议同时升级 Gradle 和 Android Gradle Plugin(AGP)到与 HBuilderX 5.09+ 云端打包环境一致的版本。
gradle/wrapper/gradle-wrapper.properties文件中的distributionUrl)build.gradle文件)更新 uni-app x 插件:
你下载的 SDK 包中的
plugins文件夹里包含了uts-kotlin-compiler-plugin-0.0.1.jar和uts-kotlin-gradle-plugin-0.0.1.jar。请确保你已经将这些文件正确复制到项目的plugins目录下,并根据文档要求进行了引用。总结一下,核心操作是将 Kotlin 版本从 1.9.10 升级到 2.2.0。 如果升级后遇到其他依赖问题,可以参考官方文档中的完整依赖配置进行修改:uni-app x 原生SDK Android版。
DCloud_Android_zl
gradle版本为8.14.3。gradle插件版本为8.12.0。kotlin插件版本为2.2.0。
参考这个配置调整一下工程,或者直接参考SDK中的示例
要回复问题请先登录或注册
公告
更多>相关问题