升级Jetpack Compose BOM至2023.08.00,如何不升级compileSdk/targetSdk到34?
无需升级compileSdk/targetSdk至34完成Compose BOM 2023.08.00升级的解决方案
问题根源
Compose BOM 2023.08.00中引入了androidx.emoji2:emoji2:1.4.0,该版本强制要求项目编译SDK版本为34或更高,而你的项目当前使用compileSdk 33,因此触发报错。
解决方案
通过在依赖中显式指定兼容compileSdk 33的emoji2版本,覆盖BOM中的默认版本即可:
- 在应用级
build.gradle的dependencies块中,添加以下两行代码,强制使用emoji2 1.3.0版本(该版本兼容compileSdk 33):
// 覆盖emoji2版本以兼容compileSdk 33 implementation "androidx.emoji2:emoji2:1.3.0" implementation "androidx.emoji2:emoji2-views-compose:1.3.0"
- 修改后的完整
dependencies关键部分示例:
dependencies { // 其他原有依赖... // Jetpack Compose implementation platform("androidx.compose:compose-bom:$compose_bom_version") implementation "androidx.compose.ui:ui" implementation 'androidx.compose.ui:ui-graphics' implementation "androidx.compose.ui:ui-tooling-preview" implementation 'androidx.compose.material3:material3' implementation 'androidx.compose.material3:material3-window-size-class' debugImplementation "androidx.compose.ui:ui-tooling" debugImplementation "androidx.compose.ui:ui-test-manifest" // 新增:覆盖emoji2版本 implementation "androidx.emoji2:emoji2:1.3.0" implementation "androidx.emoji2:emoji2-views-compose:1.3.0" // 其他原有依赖... }
说明
- 这种方式不会影响BOM中其他Compose组件的版本,仅针对emoji2进行版本锁定。
- emoji2 1.3.0是稳定版本,功能上完全满足Compose BOM 2023.08.00的配套需求,且与compileSdk 33兼容。
内容的提问来源于stack exchange,提问作者Roman
相关产品推荐
相关产品推荐

