Created
June 8, 2016 18:27
-
-
Save intrepid-ab/aebbb3e4867f14730b4ca7757137b771 to your computer and use it in GitHub Desktop.
Proguard Configuration for Android Library
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Save the obfuscation mapping to a file, so we can de-obfuscate any stack | |
# traces later on. Keep a fixed source file attribute and all line number | |
# tables to get line numbers in the stack traces. | |
# You can comment this out if you're not interested in stack traces. | |
-printmapping out.map | |
-keepparameternames | |
-renamesourcefileattribute SourceFile | |
-keepattributes Exceptions,InnerClasses,Signature,Deprecated, | |
SourceFile,LineNumberTable,EnclosingMethod | |
# Preserve all annotations. | |
-keepattributes *Annotation* | |
# Preserve all public classes, and their public and protected fields and | |
# methods. | |
-keep public class * { | |
public protected *; | |
} | |
# Preserve all .class method names. | |
-keepclassmembernames class * { | |
java.lang.Class class$(java.lang.String); | |
java.lang.Class class$(java.lang.String, boolean); | |
} | |
# Preserve all native method names and the names of their classes. | |
-keepclasseswithmembernames class * { | |
native <methods>; | |
} | |
# Preserve the special static methods that are required in all enumeration | |
# classes. | |
-keepclassmembers class * extends java.lang.Enum { | |
public static **[] values(); | |
public static ** valueOf(java.lang.String); | |
} | |
# Explicitly preserve all serialization members. The Serializable interface | |
# is only a marker interface, so it wouldn't save them. | |
# You can comment this out if your library doesn't use serialization. | |
# If your code contains serializable classes that have to be backward | |
# compatible, please refer to the manual. | |
-keepclassmembers class * implements java.io.Serializable { | |
static final long serialVersionUID; | |
static final java.io.ObjectStreamField[] serialPersistentFields; | |
private void writeObject(java.io.ObjectOutputStream); | |
private void readObject(java.io.ObjectInputStream); | |
java.lang.Object writeReplace(); | |
java.lang.Object readResolve(); | |
} | |
# Your library may contain more items that need to be preserved; | |
# typically classes that are dynamically created using Class.forName: | |
# -keep public class mypackage.MyClass | |
# -keep public interface mypackage.MyInterface | |
# -keep public class * implements mypackage.MyInterface |
It is still a question, how to compile aar (gradle android library module) without apk with obfuscated/shrinked code. I found example for jar file - https://gist.github.com/nisrulz/64dd09e0922aa48351c0
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Not working while creating release apk. Can you please explain?