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

Dagger Hilt ProGuard规则配置异常:缺失生成类问题求助

Dagger Hilt 依赖注入的 ProGuard 配置问题

在Android项目中使用Dagger Hilt做依赖注入时,碰到了ProGuard相关的配置问题。试过多种方案,甚至套用了Dagger仓库推荐的ProGuard规则,构建应用时还是持续出现Dagger Hilt生成类缺失的错误。

报错信息

Missing class com.example.projectone.Hilt_GithubUserApplication (referenced from: void com.example.projectone.GithubUserApplication.() and 1 other context)
Missing classes detected while running R8. Please add the missing classes or apply additional keep rules that are generated in missing_rules.txt (see the file above)
Missing class com.example.projectone.ui.main.Hilt_MainActivity (referenced from: void com.example.projectone.ui.main.MainActivity.() and 5 other contexts)
Missing class com.example.projectone.ui.userdetail.Hilt_DetailUserActivity (referenced from: void com.example.projectone.ui.userdetail.DetailUserActivity.() and 5 other contexts)
Caused by: [CIRCULAR REFERENCE: com.android.tools.r8.utils.b: Missing class com.example.projectone.Hilt_GithubUserApplication (referenced from: void com.example.projectone.GithubUserApplication.() and 1 other context)

当前项目配置文件

proguard-rules.pro

# Keep file R and Manifest
-keep class **.R
-keep class **.R$* {*;}
-keep class **.BuildConfig {*;}
-keep class **.Manifest {*;}

-keep class androidx.constraintlayout.motion.widget.KeyAttributes { *; }

# Keep Dependency Injection Framework related classes and methods
-keep class dagger.hilt.** { *; }
-keep class javax.inject.** { *; }
-keep class javax.annotation.** { *; }

# Keep Model and Repository Classes
-keep class com.example.core.data.model.** { *; }
-keep class com.example.core.data.repo.** { *; }

# Keep ViewModels
-keep class * extends androidx.lifecycle.ViewModel

# Keep Parcelable Classes
-keep class * implements android.os.Parcelable {
    public static final android.os.Parcelable$Creator *;
}

# Keep UI-related classes
-keep class com.example.ui.activity.** { *; }
-keep class com.example.ui.fragment.** { *; }
-keep class com.example.service.** { *; }

# Menjaga semua kelas dalam paket tertentu
-keep class com.example.package.** { *; }

# Menjaga semua kelas yang disebutkan dalam file tertentu
#-keep @com.example.rules.txt

# Menjaga kelas model
-keep class com.example.model.** { *; }

# Menjaga kelas service
-keep class com.example.service.** { *; }

# Menjaga kelas-kelas yang diperlukan untuk penanganan SSL/TLS
-keep class okhttp3.internal.platform.ConscryptPlatform {*;}
-keep class okhttp3.internal.platform.OpenJSSEPlatform {*;}
-keep class org.bouncycastle.** {*;}
-keep class org.conscrypt.** {*;}
-keep class org.openjsse.** {*;}

# Keep classes required by OpenJSSE
-keep class sun.security.x509.** { *; }
-keep class sun.util.logging.** { *; }

-keep class com.example.projectone.GithubUserApplication { *; }
-keep class com.example.projectone.ui.main.MainActivity { *; }
-keep class com.example.projectone.ui.userdetail.DetailUserActivity { *; }

# Keep classes generated by Hilt
-keep class com.example.projectone.*Hilt* {
    *;
}
# Keep Hilt generated classes
-keep class com.example.projectone.Hilt_* {*;}
-keep,allowobfuscation,allowshrinking @dagger.hilt.EntryPoint class *
-keep,allowobfuscation,allowshrinking @dagger.hilt.android.EarlyEntryPoint class *

missing_rules.txt

-dontwarn com.example.projectone.Hilt_GithubUserApplication
-dontwarn com.example.projectone.ui.main.Hilt_MainActivity
-dontwarn com.example.projectone.ui.userdetail.Hilt_DetailUserActivity

求有Dagger Hilt和ProGuard配置经验的开发者提供正确的配置指导,帮忙解决这个问题,感谢支持和时间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 11:36:11