Android Studio运行Main方法报NoClassDefFoundError: LiveLiteralKt
问题排查与解决
核心原因分析
这个NoClassDefFoundError是两个问题叠加导致的:
- Kotlin版本与Compose编译器版本不兼容:你使用的Kotlin 1.9.10和Compose Compiler 1.5.3版本不匹配,编译后生成的代码依赖的类在运行时无法被正确加载。
- 错误的运行方式:直接运行Kotlin文件里的
main方法,而Android项目的代码依赖Android runtime和Compose的Android专属环境,普通JVM运行时无法识别这些Compose相关类。
具体解决步骤
1. 修复版本兼容性
Compose编译器和Kotlin版本有严格的对应关系,Kotlin 1.9.10需要搭配Compose Compiler 1.5.4版本。修改app模块的build.gradle.kts:
composeOptions { kotlinCompilerExtensionVersion = "1.5.4" }
2. 调整运行方式
- 不要直接运行单个Kotlin文件的
main方法,点击Android Studio顶部的Run按钮,选择app模块运行整个Android应用,这样会在Android模拟器/真机环境下加载所有依赖类。 - 如果需要单独测试领域类逻辑,建议把领域类代码迁移到纯Kotlin Library模块(通过
File -> New -> New Module选择Kotlin Library),这个模块不依赖Android和Compose,能正常运行main方法。
3. 清理缓存并重建项目
执行以下步骤确保依赖和编译产物正常:
- 点击菜单栏
Build -> Clean Project - 再点击
Build -> Rebuild Project - 若仍有问题,手动删除项目根目录下的
.gradle文件夹和app模块下的build文件夹,然后点击Sync Project with Gradle Files按钮重新同步。
内容的提问来源于stack exchange,提问作者ekene
相关产品推荐
相关产品推荐

