blob: 80a1f151c94123eabafca064e61538d9ac2187c3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# Proguard step for stripping debug information.
#
# This is useful to work around a bug in the way Proguard handles debug information: it
# sometimes corrupts it. Classes with corrupt debug information cannot be dexed, but
# classes with *no* debug information can be. There's no way to configure Proguard to
# delete debug information on a per-class basis, so we need this special extra step for
# stripping debug information only from those classes for which the Proguard bug is
# encountered.
#
# Currently, this pass is applied to all bundled library jars for which we are not
# compiling the source. This is slightly more than is strictly necessary to work around
# the Proguard bug, but such debug information is of negligible value and stripping it
# too slightly simplifies the makefile and saves us a handful of kilobytes of binary size.
#
# Configuring Proguard to do nothing except strip metadata is done by having it run only
# the obfuscation pass, but with a configuration that prevents it from renaming any classes.
# It then attempts to delete class metadata, so we further configure it not to do so for
# anything except the problematic debug information.
# Run only the obfuscator.
-dontoptimize
-dontshrink
-dontpreverify
-verbose
# Don't rename anything.
-keeppackagenames
# Seriously, don't rename anything.
-keep class *
-keepclassmembers class * {
*;
}
# Don't delete other useful metadata.
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,*Annotation*,EnclosingMethod
# Don't print spurious warnings from the support library.
# See: http://stackoverflow.com/questions/22441366/note-android-support-v4-text-icucompatics-cant-find-dynamically-referenced-cl
-dontnote android.support.**
-dontwarn android.support.**
|