【发布时间】:2017-10-23 02:51:16
【问题描述】:
我收到了错误
错误:任务 ':app:transformClassesAndResourcesWithProguardForDebug' 执行失败。 作业失败,查看日志了解详情
我收到很多警告,例如
警告:es.usc.citius.hipster.util.examples.maze.MazeSearch$Result:找不到引用的类 java.awt.Point
这对我来说看起来很奇怪,因为在我的 proguard-rules 中我添加了这条规则
-keep public class es.usc.citius.hipster.** { *; }
[已编辑] 我也收到类似
的警告警告:com.mypackage.android.dagger.modules.AppModule_ProvideAccelerometerSensorFactory: 找不到超类或接口 dagger.internal.Factory
我添加了匕首规则
-dontwarn dagger.internal.codegen.**
-keepclassmembers,allowobfuscation class * {
@javax.inject.* *;
@dagger.* *;
<init>();
}
-keep class dagger.* { *; }
-keep class javax.inject.* { *; }
-keep class * extends dagger.internal.Binding
-keep class * extends dagger.internal.ModuleAdapter
-keep class * extends dagger.internal.StaticInjection
以及保存我的包裹的规则
-keep public class com.mypackage.android.** { *; }
在关于忽略警告的答案之后,我添加了这条规则
-dontwarn com.mypackage.android.**
proguard 现在不会失败。但是,我不确定这是否是最佳做法以及忽略这些警告后可以打破什么?
【问题讨论】:
标签: android proguard obfuscation