运行调试时候出现编译失败:
15:44:33.968 当前工程14个页面,正在编译为android class,此过程耗时较长...
15:45:15.546 [plugin:uni:app-uts] 编译失败
15:45:15.546 exception: java.lang.RuntimeException: Error generating class file uni/UNI955D0FD/IndexKt.class (compiled from [H:\HBiuderX_Projects\FindMaster\FindMaster\unpackage\cache.app-android\src\index.kt]): Method too large: uni/UNI955D0FD/IndexKt.<clinit> ()V
15:45:15.546 at org.jetbrains.kotlin.codegen.ClassFileFactory$OutputClassFile.asByteArray(ClassFileFactory.java:310)
15:45:15.546 at org.jetbrains.kotlin.cli.common.output.OutputUtilsKt.writeAll(outputUtils.kt:33)
15:45:15.546 at org.jetbrains.kotlin.cli.common.output.OutputUtilsKt.writeAllTo(outputUtils.kt:47)
15:45:15.546 at org.jetbrains.kotlin.cli.common.output.OutputUtilsKt.writeAll(outputUtils.kt:52)
15:45:15.546 at org.jetbrains.kotlin.cli.jvm.compiler.CliCompilerUtilsKt.writeOutput(cliCompilerUtils.kt:135)
15:45:15.546 at org.jetbrains.kotlin.cli.jvm.compiler.CliCompilerUtilsKt$createOutputFilesFlushingCallbackIfPossible$1.invoke(cliCompilerUtils.kt:96)
15:45:15.546 at org.jetbrains.kotlin.cli.jvm.compiler.CliCompilerUtilsKt$createOutputFilesFlushingCallbackIfPossible$1.invoke(cliCompilerUtils.kt:94)
15:45:15.546 at org.jetbrains.kotlin.codegen.state.GenerationStateKt$GenerationStateEventCallback$1.invoke(GenerationState.kt:484)
15:45:15.546 at org.jetbrains.kotlin.codegen.state.GenerationStateKt$GenerationStateEventCallback$1.invoke(GenerationState.kt:483)
15:45:15.546 at org.jetbrains.kotlin.codegen.state.GenerationState.afterIndependentPart(GenerationState.kt:435)
15:45:15.546 at org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory.invokeCodegen(JvmIrCodegenFactory.kt:362)
15:45:15.546 at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.runCodegen(KotlinToJVMBytecodeCompiler.kt:347)
15:45:15.546 at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:122)
15:45:15.546 at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli$default(KotlinToJVMBytecodeCompiler.kt:47)
15:45:15.546 at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:168)
15:45:15.546 at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:53)
15:45:15.546 at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:100)
15:45:15.546 at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:46)
15:45:15.546 at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:101)
15:45:15.546 at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:79)
15:45:15.546 at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:43)
15:45:15.546 at utsCompiler.v2Complier(utsCompiler.java:180)
15:45:15.546 at utsCompiler.Complier(utsCompiler.java:116)
15:45:15.546 at utsCompiler.handleRequest(utsCompiler.java:78)
15:45:15.546 at utsCompiler$1.consume(utsCompiler.java:58)
15:45:15.546 at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.handleMessage(StreamMessageProducer.java:192)
15:45:15.546 at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.listen(StreamMessageProducer.java:94)
15:45:15.546 at utsCompiler.JsonRpc(utsCompiler.java:65)
15:45:15.546 at main.main(main.java:19)
15:45:15.546 Caused by: org.jetbrains.org.objectweb.asm.MethodTooLargeException: Method too large: uni/UNI955D0FD/IndexKt.<clinit> ()V
15:45:15.546 at org.jetbrains.org.objectweb.asm.MethodWriter.computeMethodInfoSize(MethodWriter.java:2087)
15:45:15.546 at org.jetbrains.org.objectweb.asm.ClassWriter.toByteArray(ClassWriter.java:489)
15:45:15.546 at org.jetbrains.kotlin.codegen.ClassBuilderFactories$2.asBytes(ClassBuilderFactories.java:118)
15:45:15.546 at org.jetbrains.kotlin.codegen.DelegatingClassBuilderFactory.asBytes(DelegatingClassBuilderFactory.kt:36)
15:45:15.546 at org.jetbrains.kotlin.codegen.DelegatingClassBuilderFactory.asBytes(DelegatingClassBuilderFactory.kt:36)
15:45:15.546 at org.jetbrains.kotlin.codegen.ClassFileFactory$ClassBuilderAndSourceFileList.asBytes(ClassFileFactory.java:343)
15:45:15.546 at org.jetbrains.kotlin.codegen.ClassFileFactory$OutputClassFile.asByteArray(ClassFileFactory.java:307)
15:45:15.546 ... 28 more
15:45:15.546
这类问题如何解决和避免呢?
2 个回复
DCloud_UNI_FengXY
你的工程代码里,是不是定义了一个很大的字面量数组或对象?
尘封11
相同问题,好象专用模块的全局变量储存数据有限制,累加起来太大了就这提示