无
- 发布:2026-03-15 14:19
- 更新:2026-03-15 14:20
- 阅读:16
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win11
HBuilderX类型: 正式
HBuilderX版本号: 5.03
手机系统: Android
手机系统版本号: Android 14
手机厂商: 模拟器
手机机型: 雷电模拟器
页面类型: vue
vue版本: vue3
打包方式: 云端
项目创建方式: HBuilderX
操作步骤:
预期结果:
无
无
实际结果:
无
无
bug描述:
14:13:03.653 [plugin:uni:app-uts] 编译失败
14:13:03.653 exception: java.lang.RuntimeException: Error generating class file uni/UNIEFD1E80/IndexKt.class (compiled from [C:\Users\Lenovo\Documents\HBuilderProjects\openim-Unixppx\unpackage\cache.app-android\src\index.kt]): Method too large: uni/UNIEFD1E80/IndexKt.<clinit> ()V [上报Bug]
14:13:03.653 at org.jetbrains.kotlin.codegen.ClassFileFactory$OutputClassFile.asByteArray(ClassFileFactory.java:273)
14:13:03.653 at org.jetbrains.kotlin.cli.common.output.OutputUtilsKt.writeAll(outputUtils.kt:33)
14:13:03.653 at org.jetbrains.kotlin.cli.common.output.OutputUtilsKt.writeAllTo(outputUtils.kt:47)
14:13:03.653 at org.jetbrains.kotlin.cli.common.output.OutputUtilsKt.writeAll(outputUtils.kt:52)
14:13:03.653 at org.jetbrains.kotlin.cli.jvm.compiler.CliCompilerUtilsKt.writeOutput(cliCompilerUtils.kt:111)
14:13:03.653 at org.jetbrains.kotlin.cli.jvm.compiler.CliCompilerUtilsKt.createOutputFilesFlushingCallbackIfPossible$lambda$7(cliCompilerUtils.kt:76)
14:13:03.653 at org.jetbrains.kotlin.codegen.state.GenerationState.afterIndependentPart(GenerationState.kt:132)
14:13:03.653 at org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory.invokeCodegen(JvmIrCodegenFactory.kt:400)
14:13:03.653 at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.runCodegen$cli(KotlinToJVMBytecodeCompiler.kt:432)
14:13:03.653 at org.jetbrains.kotlin.cli.pipeline.jvm.JvmBackendPipelinePhase.executePhase(JvmBackendPipelinePhase.kt:95)
14:13:03.653 at org.jetbrains.kotlin.cli.pipeline.jvm.JvmBackendPipelinePhase.executePhase(JvmBackendPipelinePhase.kt:36)
14:13:03.653 at org.jetbrains.kotlin.cli.pipeline.jvm.JvmBackendPipelinePhase.executePhase(JvmBackendPipelinePhase.kt:29)
14:13:03.653 at org.jetbrains.kotlin.cli.pipeline.PipelinePhase.phaseBody(PipelinePhase.kt:68)
14:13:03.653 at org.jetbrains.kotlin.cli.pipeline.PipelinePhase.phaseBody(PipelinePhase.kt:58)
14:13:03.653 at org.jetbrains.kotlin.config.phaser.NamedCompilerPhase.invoke(CompilerPhase.kt:102)
14:13:03.653 at org.jetbrains.kotlin.backend.common.phaser.CompositePhase.invoke(PhaseBuilders.kt:22)
14:13:03.653 at org.jetbrains.kotlin.config.phaser.CompilerPhaseKt.invokeToplevel(CompilerPhase.kt:53)
14:13:03.655 at org.jetbrains.kotlin.cli.pipeline.AbstractCliPipeline.runPhasedPipeline(AbstractCliPipeline.kt:109)
14:13:03.655 at org.jetbrains.kotlin.cli.pipeline.AbstractCliPipeline.execute(AbstractCliPipeline.kt:68)
14:13:03.655 at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecutePhased(K2JVMCompiler.kt:78)
14:13:03.655 at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecutePhased(K2JVMCompiler.kt:44)
14:13:03.655 at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:90)
14:13:03.655 at org.jetbrains.kotlin.cli.common.CLICompiler.exec(CLICompiler.kt:352)
14:13:03.655 at org.jetbrains.kotlin.cli.common.CLICompiler.exec(CLICompiler.kt:330)
14:13:03.655 at org.jetbrains.kotlin.cli.common.CLICompiler.exec(CLICompiler.kt:294)
14:13:03.655 at utsCompiler.v2Complier(utsCompiler.java:177)
14:13:03.655 at utsCompiler.Complier(utsCompiler.java:116)
14:13:03.655 at CompilerRequestTask.run(CompilerRequestTask.kt:27)
14:13:03.655 at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
14:13:03.655 at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
14:13:03.655 at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
14:13:03.655 at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
14:13:03.655 at java.base/java.lang.Thread.run(Thread.java:840)
14:13:03.655 Caused by: org.jetbrains.org.objectweb.asm.MethodTooLargeException: Method too large: uni/UNIEFD1E80/IndexKt.<clinit> ()V
14:13:03.655 at org.jetbrains.org.objectweb.asm.MethodWriter.computeMethodInfoSize(MethodWriter.java:2088)
14:13:03.655 at org.jetbrains.org.objectweb.asm.ClassWriter.toByteArray(ClassWriter.java:512)
14:13:03.655 at org.jetbrains.kotlin.codegen.ClassBuilderFactories$1.asBytes(ClassBuilderFactories.java:81)
14:13:03.655 at org.jetbrains.kotlin.codegen.DelegatingClassBuilderFactory.asBytes(DelegatingClassBuilderFactory.kt:27)
14:13:03.655 at org.jetbrains.kotlin.codegen.DelegatingClassBuilderFactory.asBytes(DelegatingClassBuilderFactory.kt:27)
14:13:03.655 at org.jetbrains.kotlin.codegen.ClassFileFactory$ClassBuilderAndSourceFileList.asBytes(ClassFileFactory.java:306)
14:13:03.655 at org.jetbrains.kotlin.codegen.ClassFileFactory$OutputClassFile.asByteArray(ClassFileFactory.java:270)
14:13:03.655 ... 32 more
14:13:03.655
1 个回复
Ask小助手 - Ask社区AI助手
该 bug 反馈整体信息较为充分但关键复现要素缺失,作为官方人员评审如下:
1. 内容完整性评审
优点:
Method too large: uni/UNIEFD1E80/IndexKt.<clinit> ()V清晰明确,这是 JVM 64KB 方法体大小限制导致的编译失败缺失项(需补充):
2. Bug 成立性分析
结论:Bug 成立,且为已确认问题。
在 ISSUE 系统 中已存在相同报错记录(ID: 24556),状态为已确认。该问题属于 uni-app-x 编译 Android 端时,生成的 Kotlin 字节码中类初始化方法(
<clinit>)体积超过 JVM 限制(65536 字节)导致的编译失败。技术背景:
IndexKt.<clinit>是 Kotlin 编译生成的类初始化块,当项目依赖或静态初始化逻辑过多时,可能超出 64KB 方法限制3. 建议补充信息
为加速问题定位,建议用户补充:
临时规避方案(基于知识库):
目前该问题在 HBuilderX 4.87 版本已有记录,建议关注 ISSUE #24556 的修复进展,或尝试拆分大型 UTS 插件/减少全局静态初始化代码。
反馈评级: ⭐⭐⭐(3/5)- 环境信息完善但缺少复现路径,建议补充代码示例或最小复现工程。
要回复问题请先登录或注册
公告
更多>相关问题