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

应用DexGuard后,Release构建中Coil无法加载Drawable的问题

解决Coil在DexGuard Release构建中无法加载Drawable的问题

Debug构建正常但Release用DexGuard后Drawable加载失败,核心原因是DexGuard的混淆、代码优化或资源裁剪破坏了Coil的资源加载逻辑,可通过以下配置解决:

  • 保留Coil相关类不被混淆
    DexGuard可能会混淆Coil的核心类,导致资源加载流程失效。在DexGuard配置文件中添加:

    -keep class coil.** { *; }
    -keep class androidx.coil.** { *; }
    
  • 保留Drawable资源ID映射
    资源ID被混淆后,Coil无法通过R.drawable.xxx定位到对应资源。添加规则保留应用的Drawable资源类(替换com.yourpackage为你的实际包名):

    -keep class com.yourpackage.R$drawable { *; }
    
  • 禁用Coil相关代码的优化
    DexGuard的代码优化可能移除Coil中反射或动态资源加载的关键逻辑,添加规则:

    -dontoptimize coil.**
    -dontoptimize androidx.coil.**
    
  • 验证加载方式
    可以尝试直接传入Drawable对象测试是否能正常加载,排查是否是资源ID映射的问题:

    ivGlowingCircles.load(ContextCompat.getDrawable(context, R.drawable.glowing_circles))
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 08:27:35