android 更新到1.0.0-rc 01后,Jetpack合成无法预览

hyrbngr7  于 2022-12-21  发布在  Android
关注(0)|答案(7)|浏览(167)

这发生在我身上,只有当我更新到1.0.0-rc 01.它说:
无法找到以下类:- androidx.compose.ui.tooling.preview.ComposeViewAdapter(修复构建路径,编辑XML,创建类)

我的代码:

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

agyaoht71#

**2021年7月20日更新:**只需下载并使用latest AS即可修复问题

他们在rc 01中拆分了一些软件包,但根据@CommonsWare评论(所有功劳都归他),Android Studio版本本身似乎有问题。
1.降级至beta 09,直至AS ArcticFox RC 1退出
1.尝试建议的变通方案,使用AS Arctic Fox Beta 5,将所有合成依赖项保留为1.0.0-rc01版本,仅将ui-tooling降级为1.0.0-beta09(通过注解确认)。

额外详细信息

在这里你可以找到他们在1.0.0-rc01https://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"
lrpiutwd

lrpiutwd2#

更新Android Studio Bumblebee不再需要此功能|2021.1.1金丝雀6 和 *Android Gradle插件7.1.0-alpha 06 *.注意:金丝雀4已经解决了这个问题,但需要一个破碎的AGP版本。这个问题现在也得到了解决。

除上述答复外:以下是如何在gradle中强制使用UI工具版本:

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

dbf7pr2w3#

对于我的情况,这是因为我在“release”时留下了构建变体,将其改回“debug”修复了丢失的类bug。

预览功能可能来自build.gradle中的以下行

debugImplementation "androidx.compose.ui:ui-tooling:$compose_version"
mi7gmzs6

mi7gmzs64#

我尝试了像上面的评论我,它实际上帮助我,只有我必须删除的实现:
Artic Fox Beta 5的链接:
https://developer.android.com/studio/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"
}

}
0x6upsns

0x6upsns5#

降级UI工具库时,人们仍然会收到错误:
确保您没有依赖于ui-tooling的库:1.0.0-rc 01您可以通过在您的android studio终端中使用 ./gradlew app:dependencies 来确定这一点
在我的例子中,我使用的是com.google. comperist:comperist-swiperefresh:13.0.0,它依赖于ui-tooling:1.0.0-rc 01.当我降级到comperist-swiperefresh:12.0.0时,预览可以正常工作

nxagd54h

nxagd54h6#

添加以下依赖项解决了我在库模块中预览的问题:

debugImplementation 'androidx.customview:customview-poolingcontainer:1.0.0'
um6iljoc

um6iljoc7#

在我的例子中,我有一个“设计系统”模块提供所有与合成相关的依赖项,我必须添加以下依赖项:

implementation("androidx.activity:activity-compose:1.4.0")

相关问题