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

如何防止R8在Release构建中移除公开的Compose Preview方法?

解决Release构建中Showkase无法展示Compose Preview的问题

要让R8在Release构建中保留Compose Preview方法,你需要添加针对性的ProGuard/R8规则,确保Showkase能正常扫描到所有预览元素:

  1. 保留所有带@Preview注解的Compose函数
-keepclasseswithmembers class * {
    @androidx.compose.ui.tooling.preview.Preview <methods>;
}
  1. 保留Showkase自身的注解和核心类,保证扫描逻辑正常运行
-keep class com.airbnb.android.showkase.** { *; }
-keepclasseswithmembers class * {
    @com.airbnb.android.showkase.annotation.ShowkaseComposable <methods>;
    @com.airbnb.android.showkase.annotation.ShowkaseColor <fields>;
    @com.airbnb.android.showkase.annotation.ShowkaseTypography <fields>;
}
  1. (可选)如果使用了自定义的Preview注解,补充对应规则
# 替换成你自定义注解的全类名
-keepclasseswithmembers class * {
    @com.your.app.annotation.CustomPreview <methods>;
}

额外注意事项

  • 确保Showkase依赖使用implementation而非debugImplementation,否则Release构建中会缺失Showkase的核心代码,无法加载预览目录。
  • 同步gradle后重新构建Release版本,验证预览内容是否正常展示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 04:29:53