android - 构建时找不到Composer类

标签 android gradle android-jetpack-compose

我正在尝试将compose添加到现有项目中,并在构建时遇到以下异常

e: java.lang.IllegalStateException: Cannot find the Composer class
    at androidx.compose.plugins.kotlin.compiler.lower.AbstractComposeLowering.<init>(AbstractComposeLowering.kt:156)
    at androidx.compose.plugins.kotlin.compiler.lower.ComposerLambdaMemoization.<init>(ComposerLambdaMemoization.kt:146)
    at androidx.compose.plugins.kotlin.ComposeIrGenerationExtension.generate(ComposeIrGenerationExtension.kt:55)
    at org.jetbrains.kotlin.backend.jvm.JvmBackendFacade$doGenerateFiles$1.invoke(JvmBackendFacade.kt:37)
    at org.jetbrains.kotlin.backend.jvm.JvmBackendFacade$doGenerateFiles$1.invoke(JvmBackendFacade.kt:24)
    at org.jetbrains.kotlin.psi2ir.Psi2IrTranslator.postprocess(Psi2IrTranslator.kt:93)
    at org.jetbrains.kotlin.psi2ir.Psi2IrTranslator.generateModuleFragment(Psi2IrTranslator.kt:78)
    at org.jetbrains.kotlin.backend.jvm.JvmBackendFacade.doGenerateFiles(JvmBackendFacade.kt:51)
    at org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory.generateModule(JvmIrCodegenFactory.kt:37)
    at org.jetbrains.kotlin.codegen.KotlinCodegenFacade.compileCorrectFiles(KotlinCodegenFacade.java:35)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.generate(KotlinToJVMBytecodeCompiler.kt:635)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:194)
    at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:163)
    at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:51)
    at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:86)
    at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:44)
    at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:104)
    at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:346)
    at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:102)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileIncrementally(IncrementalCompilerRunner.kt:240)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.access$compileIncrementally(IncrementalCompilerRunner.kt:39)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner$compile$2.invoke(IncrementalCompilerRunner.kt:81)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile(IncrementalCompilerRunner.kt:93)
    at org.jetbrains.kotlin.daemon.CompileServiceImplBase.execIncrementalCompiler(CompileServiceImpl.kt:606)
    at org.jetbrains.kotlin.daemon.CompileServiceImplBase.access$execIncrementalCompiler(CompileServiceImpl.kt:99)
    at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1645)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.

我的build.gradle中包含以下内容
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.72")
//...
implementation("androidx.ui:ui-framework:0.1.0-dev10")
implementation("androidx.ui:ui-tooling:0.1.0-dev10")
implementation("androidx.ui:ui-layout:0.1.0-dev10")
implementation("androidx.ui:ui-material:0.1.0-dev10")
//..
buildFeatures {
    compose = true
}

该项目还配置为使用Java 8

最佳答案

您还需要添加

    composeOptions {
        kotlinCompilerVersion "1.3.70-dev-withExperimentalGoogleExtensions-20200424"
        kotlinCompilerExtensionVersion "0.1.0-dev10"
    }

到您的应用程序build.gradle

关于android - 构建时找不到Composer类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62373498/

相关文章:

java - Android:如何在表单中强制执行最小值

java - 可扩展 ListView : want to add child list lazy loading under every group

android - IllegalStateException : function = <anonymous>, 计数 = 3,索引 = 3

android - 如何在 Jetpack Compose 中将对象的移动从一个路径平滑地切换到另一路径?

gradle - 如何使用 Kotlin 将导入的插件整合到 Gradle 中的自定义插件

android - Jetpack 撰写 : Modify Room data class using TextField

android - 有没有办法强制通过 4G 网络连接,即使启用并连接了 WiFi?

android - 在 Android Studio 中使用预构建的共享库

java - 在Windows 10上为Android Studio使用Gradle

android - Gradle Android studio 0.2.1 的构建问题