【问题标题】:NoSuchMethodError ConstantExpressionEvaluator.evaluateExpression when adding jetpack composeNoSuchMethodError ConstantExpressionEvaluator.evaluateExpression 添加jetpack compose时
【发布时间】:2021-07-08 12:25:59
【问题描述】:

将 jetpack compose 添加到我的应用程序后,如下所述: https://developer.android.com/jetpack/compose/interop/compose-in-existing-ui 我在构建时看到以下错误:

Could not perform incremental compilation: Could not connect to Kotlin compile daemon
Could not connect to kotlin daemon. Using fallback strategy.
exception: java.lang.NoSuchMethodError: org.jetbrains.kotlin.resolve.constants.evaluate.ConstantExpressionEvaluator.evaluateExpression$default(Lorg/jetbrains/kotlin/resolve/constants/evaluate/ConstantExpressionEvaluator;Lorg/jetbrains/kotlin/psi/KtExpression;Lorg/jetbrains/kotlin/resolve/BindingTrace;Lorg/jetbrains/kotlin/types/KotlinType;ZILjava/lang/Object;)Lorg/jetbrains/kotlin/resolve/constants/CompileTimeConstant;
        at org.jetbrains.kotlin.kapt3.stubs.ClassFileToSourceStubConverter.getConstantValue(ClassFileToSourceStubConverter.kt:808)
        at org.jetbrains.kotlin.kapt3.stubs.ClassFileToSourceStubConverter.convertPropertyInitializer(ClassFileToSourceStubConverter.kt:775)
        at org.jetbrains.kotlin.kapt3.stubs.ClassFileToSourceStubConverter.convertField(ClassFileToSourceStubConverter.kt:738)
        at org.jetbrains.kotlin.kapt3.stubs.ClassFileToSourceStubConverter.convertField$default(ClassFileToSourceStubConverter.kt:678)
        at org.jetbrains.kotlin.kapt3.stubs.ClassFileToSourceStubConverter.convertClass(ClassFileToSourceStubConverter.kt:409)
        at org.jetbrains.kotlin.kapt3.stubs.ClassFileToSourceStubConverter.convertTopLevelClass(ClassFileToSourceStubConverter.kt:202)
        at org.jetbrains.kotlin.kapt3.stubs.ClassFileToSourceStubConverter.convert(ClassFileToSourceStubConverter.kt:147)
        at org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.generateKotlinSourceStubs(Kapt3Extension.kt:297)
        at org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.analysisCompleted(Kapt3Extension.kt:172)
        at org.jetbrains.kotlin.kapt3.ClasspathBasedKapt3Extension.analysisCompleted(Kapt3Extension.kt:102)
        at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$invokeExtensionsOnAnalysisComplete(TopDownAnalyzerFacadeForJVM.kt:108)
        at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:118)
        at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:85)
        at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:517)
        at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:508)
        at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:114)
        at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:508)
        at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:188)
        at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli$default(KotlinToJVMBytecodeCompiler.kt:154)
        at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:169)
        at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:52)
        at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:88)
        at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:44)
        at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:98)
        at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:76)
        at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:45)
        at org.jetbrains.kotlin.cli.common.CLITool$Companion.doMainNoExit(CLITool.kt:227)
        at org.jetbrains.kotlin.cli.common.CLITool$Companion.doMainNoExit$default(CLITool.kt:222)
        at org.jetbrains.kotlin.cli.common.CLITool$Companion.doMain(CLITool.kt:214)
        at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler$Companion.main(K2JVMCompiler.kt:271)
        at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.main(K2JVMCompiler.kt)

【问题讨论】:

  • 您能告诉我们您使用的是什么 Kotlin 插件版本吗?
  • 我有同样的错误,插件版本是1.5.21。可能@ligi您在此期间已经解决了,请添加跟进?

标签: android kotlin android-jetpack-compose


【解决方案1】:

我在尝试迁移 jetpack compose 时遇到了同样的问题。

确保 kotlin gradle pluginkotlin-stdlibkotlinCompileVersion 使用相同的版本。

org.jetbrains.kotlin:kotlin-gradle-plugin

org.jetbrains.kotlin:kotlin-stdlib-jdk8

android {
    ....
    composeOptions {
        kotlinCompilerExtensionVersion composeVersion
        kotlinCompilerVersion xxxxxx // keep same here
    }
}

如果您在为 jetpack compose 进行迁移时遇到任何问题。

Google 提供代码实验室。

git clone -b end https://github.com/googlecodelabs/android-compose-codelabs

main 分支在迁移之前 end 分支在迁移之后。

因此您可以将您的项目设置与此代码实验室项目设置进行比较。

【讨论】:

    猜你喜欢
    • 2021-02-16
    • 2020-05-30
    • 2023-01-07
    • 1970-01-01
    • 2020-08-16
    • 1970-01-01
    • 2020-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多