dagger android支持proguard规则

Posted

技术标签:

【中文标题】dagger android支持proguard规则【英文标题】:dagger android support proguard rules 【发布时间】:2018-02-05 02:08:13 【问题描述】:

我正在使用带有 ProguardDagger2 android-support 库,但由于此错误,我无法编译我的项目:

Warning:dagger.android.AndroidInjector: can't find referenced class com.google.errorprone.annotations.DoNotMock
Warning:dagger.android.AndroidInjector$Builder: can't find referenced class com.google.errorprone.annotations.DoNotMock
Warning:dagger.android.AndroidInjector$Factory: can't find referenced class com.google.errorprone.annotations.DoNotMock
Warning:dagger.android.DaggerApplication: can't find referenced class com.google.errorprone.annotations.ForOverride
Warning:dagger.android.DispatchingAndroidInjector: can't find referenced class com.google.errorprone.annotations.CanIgnoreReturnValue
Warning:there were 5 unresolved references to classes or interfaces.

我使用的 Dagger 版本是2.11。

问题是我应该为 Dagger2 android-support 库使用什么 Proguard 规则?

【问题讨论】:

【参考方案1】:

应该是:

-keep class com.google.errorprone.annotations.**  *; 

更新:大概只有​​下面的规则就够了,不需要添加前面的规则。

-dontwarn com.google.errorprone.annotations.**

【讨论】:

感谢您的回答,-dontwarn 规则工作正常,但另一个没有工作

以上是关于dagger android支持proguard规则的主要内容,如果未能解决你的问题,请参考以下文章

Android设计支持库proguard规则

v7 支持库 ActionBar 的 Android Proguard 配置

使用 AndroidX 时,proguard-android-optimize.txt 中的“@Keep 支持注释”规则是不是仍然适用?

DexGuard/Proguard 混淆注释值

android studio 代码混淆如何忽略第三方jar包

从 Dagger 迁移到 Hilt 可带来的收益