You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jetpack Compose @Preview报NoClassDefFoundError如何解决

Compose 1.2.0-rc01 预览报PoolingContainer类缺失问题解决

问题复现配置

使用1.2.0-rc01版本Jetpack Compose UI Tooling、1.2.0版本Compose Compiler时,典型出错的项目配置如下:

android {
    composeOptions {
        kotlinCompilerExtensionVersion "1.2.0"
    }
}
dependencies {
    debugImplementation "androidx.compose.ui:ui-tooling:1.2.0-rc01"
    debugImplementation "androidx.customview:customview:1.1.0" // 其他依赖间接引入
    debugImplementation "androidx.customview:customview:1.2.0-alpha01" // 手动升级的最新版本
}

该配置下IDE无法正常渲染@Preview注解标注的预览页面,表层报错如下:

java.lang.NoClassDefFoundError: Could not initialize class androidx.customview.poolingcontainer.PoolingContainer
    at androidx.compose.ui.platform.ViewCompositionStrategy$DisposeOnDetachedFromWindowOrReleasedFromPool.installFor(ViewCompositionStrategy.android.kt:97)
    ...

排查后定位根因为预览类加载器找不到对应资源类:

java.lang.ClassNotFoundException: androidx.customview.poolingcontainer.R$id
    at com.android.tools.idea.rendering.classloading.loaders.DelegatingClassLoader.findClass(DelegatingClassLoader.kt:81)
    ...

解决步骤

缺失的androidx.customview.poolingcontainer.R$id是customview-poolingcontainer组件编译时自动生成的资源类,不需要手动写代码补全,按以下操作修复依赖即可:

  • 移除手动添加的debugImplementation "androidx.customview:customview:1.2.0-alpha01"依赖,手动跨版本升级customview会和Compose UI Tooling传递依赖的组件版本冲突,导致资源类丢失。
  • 在dependencies块中显式添加和Compose 1.2.0-rc01匹配的poolingcontainer依赖:
debugImplementation "androidx.customview:customview-poolingcontainer:1.0.0"
  • 如果业务必须保留高版本customview,需要在Gradle配置中强制统一customview相关组件的版本,避免传递依赖冲突:
configurations.all {
    resolutionStrategy {
        force "androidx.customview:customview:1.2.0-alpha01"
        force "androidx.customview:customview-poolingcontainer:1.0.0"
    }
}
  • 执行Gradle同步后,点击IDE菜单栏File -> Invalidate Caches...,勾选清除缓存并重启IDE,预览即可正常渲染。

注意:不要尝试手动创建对应R类,这类资源类是编译阶段AAR自动合并生成的,手动编写的类无法匹配资源ID映射,会引发其他运行时异常。

内容的提问来源于stack exchange,提问作者Martin Zeitler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 19:54:16