【问题标题】:Jetpack Compose: Exception while analyzing expressionJetpack Compose:分析表达式时出现异常
【发布时间】:2019-08-14 11:54:04
【问题描述】:

我正在尝试使用 Jetpack Compose 构建简单的应用程序。 我关注了this documentation,下载了存储库并创建了自己的模块。

代码很简单:

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")
        }
    }
}

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

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

在哪里 (23,9) 引用 Card 小部件

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

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

它可以完美编译和运行。

我遇到了以下问题:

  • 栏目
  • 中心
  • 弹性柱

我猜还有很多其他小部件

【问题讨论】:

  • import androidx.compose.composer 添加到您的导入列表中,看看是否可以清除它。如果您使用的是作为当前 Jetpack Compose 环境一部分的实验性 Android Studio 构建,则此 import 将显示为未使用。但是,许多可组合项实际工作是必要的。

标签: android kotlin android-jetpack android-jetpack-compose


【解决方案1】:

我之前遇到过这个问题。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-13
    • 1970-01-01
    • 2019-10-03
    • 2021-09-08
    • 2023-01-05
    • 2019-01-04
    • 1970-01-01
    • 2019-04-08
    相关资源
    最近更新 更多