启用混淆后Android Dagger Hilt出现ClassCastException问题求助
解决Hilt混淆导致的ClassCastException问题
这个问题是因为你只保护了TestApplication本身,但Hilt编译时生成的依赖注入辅助类被混淆了,导致运行时类型转换失败。需要补充混淆规则,保护这些自动生成的类:
补充混淆规则
修改你的<ignore-classes>配置,添加对Hilt生成类的保护:
<ignore-classes> <class template="class kr.co.test.TestApplication" /> <!-- 保护Hilt生成的Injector类 --> <class template="class kr.co.test.*_GeneratedInjector" /> <!-- 保护Hilt生成的Dagger组件类 --> <class template="class kr.co.test.Dagger*HiltComponents*" /> </ignore-classes>
原因说明
Hilt会为你的Application自动生成如TestApplication_GeneratedInjector、DaggerTestApplication_HiltComponents_SingletonC这类辅助类,它们和原Application类存在强关联的类型依赖。如果这些类被混淆,会破坏类型结构,导致启动时抛出ClassCastException。
内容的提问来源于stack exchange,提问作者Juro
相关产品推荐
相关产品推荐

