Jetpackcompose更新到1.0.0-rc01后无法预览
仅当我更新到 1.0.0-rc01 时才发生这种情况。它说:
找不到以下类:- androidx.compose.ui.tooling.preview.ComposeViewAdapter(修复构建路径、编辑 XML、创建类)
我的代码:
@Composable
@Preview
fun CenterProgress(){
Box(
modifier= Modifier.fillMaxSize(),
contentAlignment = Alignment.Center
){
CircularProgressIndicator(strokeWidth = 3.dp)
}
}
回答
2021 年 7月 20 日更新:
只需下载并使用最新的AS ArcticFox RC1即可解决问题
他们在 rc01 中拆分了一些包,但根据 @CommonsWare 评论(所有功劳都归功于他),似乎 Android Studio 版本本身存在问题。您有 2 个选择:
- 降级到 beta09 直到 AS ArcticFox RC1 出来
- 尝试建议的解决方法,使用 AS Arctic Fox Beta 5 将所有组合依赖项保留到
1.0.0-rc01版本并仅降级ui-tooling到1.0.0-beta09(由评论确认)。
额外的细节
在这里你可以找到他们在1.0.0-rc01 https://android-review.googlesource.com/c/platform/frameworks/support/+/1739498 中移动的所有类,以及关于为什么决定这样做的解释。
简而言之,您现在可以针对某些特定的优化场景(这不应该是默认情况)执行此操作:
debugImplementation "androidx.compose.ui:ui-tooling:1.0.0-rc01"
implementation "androidx.compose.ui:ui-tooling-preview:1.0.0-rc01"
- Android Studio Artic Fox (2020.3.1) Beta 5 - 2021 年 7 月 2 日。对我来说,它解决了问题,将所有撰写依赖项保留为 1.0.0-rc01 版本,仅将 ui-tooling 降级到 1.0.0-beta09。
- 在我的情况下仍然不起作用!!
回答
更新:Android Studio Bumblebee不再需要此功能| 2021.1.1 Canary 6和Android Gradle 插件 7.1.0-alpha06。注意:Canary 4 已经修复了这个问题,但需要一个损坏的 AGP 版本。现在也解决了这个问题。
除了上述答案:这里是如何在 gradle 中强制使用 ui-tooling 版本:
implementation("androidx.compose.ui:ui-tooling:$compose_version") {
version {
// TODO: Remove this when Android Studio has become compatible again
// Android Studio Bumblebee | 2021.1.1 Canary 3 is not compatible with module ui-tooling 1.0.0-rc01 or higher.
// The Run Configuration for Composable Previews that Android Studio makes expects a PreviewActivity class
// in the `androidx.compose.ui.tooling.preview` package, but it was moved in 1.0.0-rc01, and thus causes error:
// "androidx.compose.ui.tooling.preview.PreviewActivity is not an Activity subclass or alias".
// For more, see: https://stackoverflow.com/questions/68224361/jetpack-compose-cant-preview-after-updating-to-1-0-0-rc01
strictly("1.0.0-beta09")
}
}