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

开启minifyEnabled=true时Android Release包启动崩溃,求Hilt ProGuard规则

Hilt 相关 ProGuard 规则配置

当开启 minifyEnabled = true 后 Release 包启动崩溃,大概率是混淆过程中Hilt相关的类、注解被误删或修改导致的。你需要在 proguard-rules.pro 中添加以下规则:

基础Hilt混淆规则

# Hilt 核心规则
-keep class dagger.hilt.** { *; }
-keep class javax.inject.** { *; }
-keep class androidx.hilt.** { *; }

# 保留Hilt生成的组件类
-keep class *$$HiltComponents { *; }
-keep class *$$HiltModules { *; }

# 保留带有Hilt注解的类和方法
-keep @dagger.hilt.android.HiltAndroidApp class *
-keep @dagger.hilt.android.AndroidEntryPoint class *
-keep @dagger.hilt.InstallIn class *
-keep @javax.inject.Inject class *
-keepclassmembers class * {
    @javax.inject.Inject <init>(...);
    @dagger.hilt.android.qualifiers.ApplicationContext <fields>;
    @dagger.hilt.android.qualifiers.ActivityContext <fields>;
}

# 保留ViewModel相关的Hilt规则(如果使用Hilt注入ViewModel)
-keep class androidx.hilt.lifecycle.HiltViewModelFactory { *; }
-keep @androidx.hilt.lifecycle.HiltViewModel class *
-keepclassmembers class * extends androidx.lifecycle.ViewModel {
    @javax.inject.Inject <init>(...);
}

额外排查点

如果添加上述规则后仍崩溃,建议检查:

  • 确保自定义模块、依赖注入的类没有被混淆,比如自己写的带有 @Module、@Provides 注解的类,需要补充:
-keep @dagger.Module class *
-keepclassmembers class * {
    @dagger.Provides <methods>;
}
  • 查看Crashlytics中的崩溃栈,定位被混淆的具体类,针对性添加保留规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 08:17:02