compileDebugKotlin 导致 StackOverflowError 并出现未知错误

ani*_*o53 5 gradle kotlin android-studio build.gradle android-gradle-plugin

我在我的一个 android studio 项目中遇到了一个恼人的问题,这个 gradle 问题是间歇性的,我不知道我的代码的哪一部分导致了这个问题。只是想知道是否有人遇到这个问题并找到解决方案

在我清理/重建我的项目后,错误将消失,但在接下来的几个小时/几天内它会再次发生。

Task :feature:profile:compileDebugKotlin
e: java.lang.StackOverflowError
    at org.jetbrains.kotlin.com.intellij.util.containers.BidirectionalMap.get(BidirectionalMap.java:86)
    at org.jetbrains.kotlin.cfg.pseudocode.PseudocodeImpl.getElementValue(PseudocodeImpl.kt:187)
    at org.jetbrains.kotlin.cfg.pseudocode.ControlFlowInstructionsGenerator$ControlFlowInstructionsGeneratorWorker.getBoundValue(ControlFlowInstructionsGenerator.kt:234)
    at org.jetbrains.kotlin.cfg.ControlFlowBuilderAdapter.getBoundValue(ControlFlowBuilderAdapter.kt:204)
    at org.jetbrains.kotlin.cfg.ControlFlowProcessor$CFPVisitor.getReceiverValues(ControlFlowProcessor.kt:1618)
    at org.jetbrains.kotlin.cfg.ControlFlowProcessor$CFPVisitor.getReceiverValues(ControlFlowProcessor.kt:1589)
    at org.jetbrains.kotlin.cfg.ControlFlowProcessor$CFPVisitor.generateCall(ControlFlowProcessor.kt:1535)
    at org.jetbrains.kotlin.cfg.ControlFlowProcessor$CFPVisitor.checkAndGenerateCall(ControlFlowProcessor.kt:1528)
    at org.jetbrains.kotlin.cfg.ControlFlowProcessor$CFPVisitor.generateCall(ControlFlowProcessor.kt:1523)
    at org.jetbrains.kotlin.cfg.ControlFlowProcessor$CFPVisitor.visitBinaryExpression(ControlFlowProcessor.kt:349)
    at org.jetbrains.kotlin.psi.KtVisitorVoid.visitBinaryExpression(KtVisitorVoid.java:713)
    at org.jetbrains.kotlin.psi.KtVisitorVoid.visitBinaryExpression(KtVisitorVoid.java:21)
    at org.jetbrains.kotlin.psi.KtBinaryExpression.accept(KtBinaryExpression.java:35)
    at org.jetbrains.kotlin.psi.KtElementImpl.accept(KtElementImpl.java:49)
    at org.jetbrains.kotlin.cfg.ControlFlowProcessor$CFPVisitor.generateInstructions(ControlFlowProcessor.kt:179)
    at org.jetbrains.kotlin.cfg.ControlFlowProcessor$CFPVisitor.getReceiverValues(ControlFlowProcessor.kt:1619)
    at org.jetbrains.kotlin.cfg.ControlFlowProcessor$CFPVisitor.getReceiverValues(ControlFlowProcessor.kt:1589)
    at org.jetbrains.kotlin.cfg.ControlFlowProcessor$CFPVisitor.generateCall(ControlFlowProcessor.kt:1535)
    at org.jetbrains.kotlin.cfg.ControlFlowProcessor$CFPVisitor.checkAndGenerateCall(ControlFlowProcessor.kt:1528)
    at org.jetbrains.kotlin.cfg.ControlFlowProcessor$CFPVisitor.generateCall(ControlFlowProcessor.kt:1523)
    at org.jetbrains.kotlin.cfg.ControlFlowProcessor$CFPVisitor.visitBinaryExpression(ControlFlowProcessor.kt:349)
    at org.jetbrains.kotlin.psi.KtVisitorVoid.visitBinaryExpression(KtVisitorVoid.java:713)
    at org.jetbrains.kotlin.psi.KtVisitorVoid.visitBinaryExpression(KtVisitorVoid.java:21)
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪中打印的根本原因也每次都在不断变化,在示例中是 Bi DirectionMap,另一次会有所不同。

该错误不仅发生在我的本地计算机上,我尝试在我朋友的计算机上运行它,但结果是一样的。真正的问题是我无法再使用 AppCenter 执行 CI/CD。