Jetpack compose 更新到 1.0.0-rc01 后无法预览

时间:2021-07-02 11:24:35

标签: android android-jetpack-compose

这仅在我更新到 1.0.0-rc01 时发生在我身上。 它说:

<块引用>

找不到以下类: - androidx.compose.ui.tooling.preview.ComposeViewAdapter(修复构建路径、编辑 XML、创建类)

enter image description here

我的代码:

@Composable
@Preview
fun CenterProgress(){
    Box(
        modifier= Modifier.fillMaxSize(),
        contentAlignment = Alignment.Center
    ){
        CircularProgressIndicator(strokeWidth = 3.dp)
    }
}

4 个答案:

答案 0 :(得分:54)

2021 年 7 月 20 日更新: 只需下载并使用最新的 AS ArcticFox RC1 即可解决问题


他们在 rc01 中拆分了一些包,但根据 @CommonsWare 评论(所有功劳都归功于他)似乎 Android Studio 版本本身存在问题。 您有 2 个选择:

  1. 降级到 beta09,直到 AS ArcticFox RC1 出来
  2. 尝试建议的解决方法,使用 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"

答案 1 :(得分:19)

更新Android Studio Bumblebee 不再需要此功能 | 2021.1.1 Canary 6Android 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")
    }
}

答案 2 :(得分:3)

人们在降级 ui-tooling 库时仍然遇到错误:

确保你没有依赖 ui-tooling 的库:1.0.0-rc01 您可以通过在您的 android studio 终端中使用 ./gradlew app:dependencies 来找到这一点

就我而言,我使用的是 com.google.accompanist:accompanist-swiperrefresh:13.0.0,它依赖于 ui-tooling:1.0.0-rc01。当我降级到伴奏-swiperrefresh:12.0.0

时,预览正在工作

答案 3 :(得分:2)

我像上面的评论一样尝试了它,它实际上对我有帮助,只是我不得不删除:

链接至北极狐 Beta 5:
https://developer.android.com/studio/preview

androidx.compose.ui:ui-tooling-preview.
我的撰写配置如下所示:

android {

def compose_version = '1.0.0-rc01'


composeOptions {
  kotlinCompilerExtensionVersion "$compose_version"
}

dependencies {
  def compose_version = '1.0.0-rc01'
/**Compose Related*/

    implementation "androidx.compose.compiler:compiler:$compose_version"
    implementation "androidx.compose.ui:ui:$compose_version"
    implementation "androidx.activity:activity-compose:1.3.0-rc01"
    implementation "androidx.compose.material:material:$compose_version"

    implementation "androidx.compose.ui:ui-tooling:1.0.0-beta09"
//    Need to comment this two lines to work on artic fox
//    implementation "androidx.compose.ui:ui-tooling:$compose_version"
//    implementation "androidx.compose.ui:ui-tooling-preview:$compose_version"
    /**Accompanist*/
    // Coil
    implementation 'dev.chrisbanes.accompanist:accompanist-insets:0.6.2'
    implementation "com.google.accompanist:accompanist-coil:0.13.0"
    implementation "androidx.compose.runtime:runtime:$compose_version"
    implementation "androidx.compose.runtime:runtime-livedata:$compose_version"

    /** Material Icons */
    implementation "androidx.compose.material:material-icons-extended:$compose_version"


    // Jetpack Compose Integration
    implementation "androidx.navigation:navigation-compose:2.4.0-alpha04"
}

}