@Composable 调用只能在 @composable 函数的上下文中发生

时间:2021-04-02 16:27:16

标签: android android-jetpack-compose

有一个类似的问题 Another similar question。 但这并不能解决我的问题。

在构建我的项目后,我收到此错误“@Composable 调用只能从 @composable 函数的上下文中发生”,即使预览工作正常。

这是我的代码:

    override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContent {
                MyApp {
                SplashUI()
                }
            }
    }
    
     @Composable
        fun SplashUI() {
            Image(painterResource(R.drawable.logo_voodlee),"content description")
        }
    
        @Composable
        fun MyApp(content: @Composable () -> Unit) {
         MaterialTheme {
                Surface(color = Color.Yellow) {
                    content()
                }
    
        }
}
    
       @Preview("MyScreen preview")
    @Composable
    fun DefaultPreview() {
            MyApp {
                SplashUI()
            }
        }

被困在这几个小时。 请帮我解决这个问题!!!

1 个答案:

答案 0 :(得分:0)

找到了解决方案。我导入了错误的 setContent,并且没有添加依赖项 "androidx.activity:activity-compose:1.3.0-alpha05" 添加它,然后导入正确的 setContent,即 androidx.activity.compose.setContent - 这解决了问题。