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

为何LiveLiteralsKt引发运行时问题?跨项目AAR库适配异常咨询

问题分析与解决方法

原因说明

LiveLiteralsKt是Jetpack Compose Runtime内部的工具类,和Compose的Live Literals功能绑定——这个功能用于在Debug模式下支持Compose组件中字面量值的动态更新,默认在Debug构建中启用。

你的自定义库在构建时(大概率是Debug包)启用了该功能,导致编译后的McButton相关代码依赖这个类,但第二个项目没有引入Compose Runtime的依赖,因此运行时抛出NoClassDefFoundError。

解决方法

情况1:库本身未使用Compose

检查库模块的build.gradle(或build.gradle.kts),确认是否误开启了Compose构建特性:

  • 移除buildFeatures.compose = true这类启用Compose的配置
  • 若无法完全移除Compose配置,强制禁用Live Literals:
composeOptions {
    liveLiteralsEnabled = false
}

重新构建库的AAR文件,替换到第二个项目中。

情况2:库确实依赖Compose

在第二个项目的app模块build.gradle中,添加与库版本一致的Compose Runtime依赖:

dependencies {
    implementation "androidx.compose.runtime:runtime:对应Compose版本号"
    // 若库还用到了Compose其他模块(如ui、foundation等),需同步引入对应依赖
}

情况3:改用Release版本的AAR

Debug版本的AAR会包含调试相关的额外代码(包括Live Literals依赖),而Release构建默认会禁用这些调试特性。重新构建库的Release版AAR,替换到第二个项目即可解决问题。


内容的提问来源于stack exchange,提问作者Clark Battle

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 04:43:12