首页 > 解决方案 > Jetpack Compose:分析表达式时出现异常

问题描述

我正在尝试使用 Jetpack Compose 构建简单的应用程序。我遵循了这个文档,下载了存储库并创建了我自己的模块。

代码非常简单:

import android.app.Activity
import android.os.Bundle
import androidx.compose.Composable
import androidx.ui.core.Text
import androidx.ui.core.setContent
import androidx.ui.material.surface.Card
import androidx.ui.graphics.Color

class MainActivity : Activity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            MyApp()
        }
    }

    @Composable
    fun MyApp() {
        Card(color = Color.Cyan) {
            Text("test")
        }
    }
}

但我注意到一些可组合的小部件不起作用,我有以下错误:

在 /path/Projects/androidx-master-dev/frameworks/support/ui/compose/src/main/java/app/myown/MainActivity.kt 中分析 (23,9) 处的表达式时出现异常

其中 (23,9) 引用Card小部件

顺便说一下其他小部件的工作方式,例如我没有问题

@Composable
fun MyApp() {
    Padding(10.dp) {
        Text("test")
    }
}

它编译并完美运行。

我遇到了以下问题:

我猜还有很多其他小部件

标签: androidkotlinandroid-jetpackandroid-jetpack-compose

解决方案


我之前遇到过这个问题。

每个具有函数import androidx.compose.composer的 Kotlin 源文件都隐含需要。@Composable我说“隐式”是因为 Android Studio 认为这是不必要的,并且倾向于删除该行(例如,您要求它优化导入)。一些@Composable函数可以在没有这个导入的情况下继续存在,但其他函数则不能。

据我了解,这是随着库和工具的发展而变得更好的事情之一,但目前,只要留意那个导入并添加它,如果它丢失并且你变得比 -正常结果。


推荐阅读