美文网首页Android开发经验谈Android开发
AS 中 kotlin build 报错 Label wasn&

AS 中 kotlin build 报错 Label wasn&

作者: INode | 来源:发表于2019-07-01 14:19 被阅读6次

报错:

报错截图
java.lang.IllegalStateException: Backend Internal error: Exception during code generation
Cause: Back-end (JVM) Internal error: wrong code generated
org.jetbrains.kotlin.codegen.CompilationException Back-end (JVM) Internal error: Couldn't transform method node:
···
此处省略N行
···
Cause: Label wasn't found during iterating through instructions
Element is unknownThe root cause was thrown at: LabelNormalizationMethodTransformer.kt:148
  at org.jetbrains.kotlin.codegen.TransformationMethodVisitor.visitEnd(TransformationMethodVisitor.kt:92)
  at org.jetbrains.org.objectweb.asm.MethodVisitor.visitEnd(MethodVisitor.java:778)
  at org.jetbrains.kotlin.codegen.FunctionCodegen.endVisit(FunctionCodegen.java:983)
  ... 86 more
Caused by: java.lang.IllegalStateException: Label wasn't found during iterating through instructions
  at org.jetbrains.kotlin.codegen.optimization.LabelNormalizationMethodTransformer$TransformerForMethod.getNew(LabelNormalizationMethodTransformer.kt:148)
  at org.jetbrains.kotlin.codegen.optimization.LabelNormalizationMethodTransformer$TransformerForMethod.rewriteLabels(LabelNormalizationMethodTransformer.kt:125)
  at org.jetbrains.kotlin.codegen.optimization.LabelNormalizationMethodTransformer$TransformerForMethod.rewriteJumpInsn(LabelNormalizationMethodTransformer.kt:88)
  at org.jetbrains.kotlin.codegen.optimization.LabelNormalizationMethodTransformer$TransformerForMethod.rewriteNonLabelInstructions(LabelNormalizationMethodTransformer.kt:69)
  at org.jetbrains.kotlin.codegen.optimization.LabelNormalizationMethodTransformer$TransformerForMethod.transform(LabelNormalizationMethodTransformer.kt:36)
  at org.jetbrains.kotlin.codegen.optimization.LabelNormalizationMethodTransformer.transform(LabelNormalizationMethodTransformer.kt:27)
  at org.jetbrains.kotlin.codegen.optimization.transformer.CompositeMethodTransformer.transform(CompositeMethodTransformer.kt:25)
  at org.jetbrains.kotlin.codegen.optimization.transformer.CompositeMethodTransformer.transform(CompositeMethodTransformer.kt:25)
  at org.jetbrains.kotlin.codegen.optimization.OptimizationMethodVisitor.performTransformations(OptimizationMethodVisitor.kt:62)
  at org.jetbrains.kotlin.codegen.TransformationMethodVisitor.visitEnd(TransformationMethodVisitor.kt:70)
  ... 88 more 

解决:

出现该问题是因为编译器不识别类型导致的,我遇到该情况是在对一个可能为空的 String? 追加值时出现

bean?.name += "test"
修改为:
if (bean != null)
  bean!!.name += "test"

主要是要修改为一个确切的类型

相关文章

网友评论

    本文标题:AS 中 kotlin build 报错 Label wasn&

    本文链接:https://www.haomeiwen.com/subject/recgcctx.html