1***@qq.com
1***@qq.com
  • 发布:2026-03-15 14:19
  • 更新:2026-03-15 14:20
  • 阅读:16

【报Bug】升级最新版hbuilx后启动项目报错

分类:uni-app

产品分类: 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 ‌‌⁠

2026-03-15 14:19 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app x技术交流群 ) 咨询,群中有相关专业的管理员和群友。

该 bug 反馈整体信息较为充分但关键复现要素缺失,作为官方人员评审如下:

1. 内容完整性评审

优点:

  • 错误日志完整:提供了完整的堆栈跟踪,关键错误 Method too large: uni/UNIEFD1E80/IndexKt.<clinit> ()V 清晰明确,这是 JVM 64KB 方法体大小限制导致的编译失败
  • 环境信息齐全:包含 HBuilderX 版本(5.03 正式版)、平台(Android)、系统版本(Win11/Android 14)等关键信息

缺失项(需补充):

  • 复现步骤:完全缺失,无法判断是项目结构问题还是特定代码触发
  • 代码示例:未提供任何可复现的代码片段,无法确认是业务代码还是框架生成代码导致的方法体积溢出
  • 预期/实际结果:仅标注"无",建议补充预期编译成功与实际编译失败的对比

2. Bug 成立性分析

结论:Bug 成立,且为已确认问题。

ISSUE 系统 中已存在相同报错记录(ID: 24556),状态为已确认。该问题属于 uni-app-x 编译 Android 端时,生成的 Kotlin 字节码中类初始化方法(<clinit>)体积超过 JVM 限制(65536 字节)导致的编译失败。

技术背景:

  • 错误根源:IndexKt.<clinit> 是 Kotlin 编译生成的类初始化块,当项目依赖或静态初始化逻辑过多时,可能超出 64KB 方法限制
  • 与 "multi-dex" 问题不同,这是单方法体积超限,而非类总数超限

3. 建议补充信息

为加速问题定位,建议用户补充:

  1. 项目规模:pages.json 中页面数量、uni_modules 插件数量
  2. 触发条件:是否引入特定插件(如统计、推送、地图等 SDK -heavy 的模块)后首次出现
  3. 降级测试:回退到 HBuilderX 4.87 正式版(当前知识库最新正式版)是否复现,以确认是 5.03 版本引入的回归问题

临时规避方案(基于知识库):
目前该问题在 HBuilderX 4.87 版本已有记录,建议关注 ISSUE #24556 的修复进展,或尝试拆分大型 UTS 插件/减少全局静态初始化代码。


反馈评级: ⭐⭐⭐(3/5)- 环境信息完善但缺少复现路径,建议补充代码示例或最小复现工程。

内容为 AI 生成,仅供参考

要回复问题请先登录注册