无法访问“setContent”:它位于“androidx.compose.ui.platform”内部

Ely*_*lye 5 android android-jetpack-compose

我在用着

  • Android Studio 4.3(Artix Fox | 2020.3.1 Canary 5),
  • compose_version = '1.0.0-beta01'
  • Kotlin 版本 1.4.30

当我打开 Empty Compose Activity 并编译时,出现以下错误

e: MainActivity.kt: (9, 37): Cannot access 'setContent': it is internal in 'androidx.compose.ui.platform'
Run Code Online (Sandbox Code Playgroud)

这很奇怪,因为它是一个模板生成的项目,并且应该可以工作。有什么解决办法吗?

Gas*_*lén 9

在你的 gradle 中添加这一行

// In charge of setContent
implementation "androidx.activity:activity-compose:1.0.0-beta01"
Run Code Online (Sandbox Code Playgroud)

activity-composesetContent保存您需要的方法的参考


H.D*_*.D. 4

https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0-beta01

ComponentActivity.setContent() 已从 compose:ui 中删除。使用 androidx.activity:activity-compose 中的一个。viewModel() 和 LocalViewModelStoreOwner 已从 compose:ui 中删除。使用 androidx.lifecycle:lifecycle-viewmodel-compose 中的那些。

您添加androidx.activity:activity-compose:1.3.0-alpha03到您的依赖项了吗?如果你还没有,你应该这样做。如果有,请重新导入正确的androidx.activity.compose.setContent.

顺便说一句,Jetpack Compose 在 alpha 阶段变化很快,因此旧 Android Studio 版本的模板过时也就不足为奇了。如果您想使用 Jetpack Compose,最好继续使用最新的 Android Studio 版本。