这是我的proguard-project.txt:
-keep class com.google.inject.** { *; }
-keep class javax.inject.** { *; }
-keep class javax.annotation.** { *; }
-keep class roboguice.** { *; }
-keepattributes Signature
-keepattributes *Annotation*
-keep class roboguice.**
-keep class com.google.inject.** { *; }
-keepclassmembers class * {
@com.google.inject.Inject <fields>;
@com.google.inject.Inject <init>(...);
}
-keep class javax.inject.** { *; }
-keep class javax.annotation.** { *; }
-keep class com.appmanager.ui.activities.** { *; }
-keep class com.appmanager.ui.fragments.** { *; }
我收到500条警告: http://pastebin.com/HihG9c66
如何解决此警告并防止代码崩溃?
答案 0 :(得分:0)
RoboGuice的当前(保持最新)官方ProGuard设置列表可在https://github.com/roboguice/roboguice/wiki/ProGuard
获取对我来说,这些部分要么不在那个文件中,要么不是默认的,我最初是跳过的,是:
-keep class com.mynamespace.MyRoboGuiceModule { *; }
-keep class com.mynamespace.SomeObjectThatGetsInjected { *; }
-dontobfuscate
我真的不喜欢删除混淆。但它使得ProGuard更容易工作,而无需逐个完成每个课程。 (从公共崩溃报告中映射堆栈跟踪的步骤少了一步。)
您还可以在上面添加以下内容以使其进行编译,但它可能仍会在运行时崩溃。因此,在编译的发布版本中始终测试所有代码路径!
-dontwarn roboguice.**
-dontwarn org.roboguice.**