android - undefined symbols using proguard -
i trying use proguard, got undefined symbols in ant release output.
[javac] d:\java\cooktales\icdb\src\org\bj\food4all\activities\recipebook\sel ectcontactslistviewadapter.java:56: cannot find symbol [javac] symbol : variable applanguageenum [javac] location: class org.bj.food4all.activities.recipebook.selectcontacts listviewadapter [javac] if( cooktales.instance().getapplicationlanguage( ) == applanguageenum.hebrew ) [javac]
also repeated public members of application class of android application.
here config.txt of proguard:
-target 1.6 -printusage unused.txt -optimizationpasses 2 -printmapping mapping.txt # -overloadaggressively -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -verbose -dump class_files.txt -printseeds seeds.txt # -optimizations option disables arithmetic simplifications dalvik 1.0 , 1.5 can't handle. -optimizations !code/simplification/arithmetic # keep classes entry points. -keep public class * extends android.app.activity -keep public class * extends android.app.service -keep public class * extends android.content.broadcastreceiver -keep public class * extends android.content.contentprovider -keep public class * extends android.app.application -keep public class * extends view { public <init>(android.content.context); public <init>(android.content.context, android.util.attributeset); public <init>(android.content.context, android.util.attributeset, int); public void set*(...); } # keep - enumerations. keep special static methods required in # enumeration classes. -keepclassmembers enum * { public static **[] values(); public static ** valueof(java.lang.string); } -keepclassmembers class * extends android.app.application { static public cooktales instance(); } # keep names - native method names. keep native class/method names. -keepclasseswithmembers,allowshrinking class * { native <methods>; } # remove - system method calls. remove invocations of system # methods without side effects return values not used. -assumenosideeffects public class java.lang.system { public static long currenttimemillis(); static java.lang.class getcallerclass(); public static int identityhashcode(java.lang.object); public static java.lang.securitymanager getsecuritymanager(); public static java.util.properties getproperties(); public static java.lang.string getproperty(java.lang.string); public static java.lang.string getenv(java.lang.string); public static java.lang.string maplibraryname(java.lang.string); public static java.lang.string getproperty(java.lang.string,java.lang.string); } # remove - math method calls. remove invocations of math # methods without side effects return values not used. -assumenosideeffects public class java.lang.math { public static double sin(double); public static double cos(double); public static double tan(double); public static double asin(double); public static double acos(double); public static double atan(double); public static double toradians(double); public static double todegrees(double); public static double exp(double); public static double log(double); public static double log10(double); public static double sqrt(double); public static double cbrt(double); public static double ieeeremainder(double,double); public static double ceil(double); public static double floor(double); public static double rint(double); public static double atan2(double,double); public static double pow(double,double); public static int round(float); public static long round(double); public static double random(); public static int abs(int); public static long abs(long); public static float abs(float); public static double abs(double); public static int max(int,int); public static long max(long,long); public static float max(float,float); public static double max(double,double); public static int min(int,int); public static long min(long,long); public static float min(float,float); public static double min(double,double); public static double ulp(double); public static float ulp(float); public static double signum(double); public static float signum(float); public static double sinh(double); public static double cosh(double); public static double tanh(double); public static double hypot(double,double); public static double expm1(double); public static double log1p(double); } # remove - number method calls. remove invocations of number # methods without side effects return values not used. -assumenosideeffects public class java.lang.* extends java.lang.number { public static java.lang.string tostring(byte); public static java.lang.byte valueof(byte); public static byte parsebyte(java.lang.string); public static byte parsebyte(java.lang.string,int); public static java.lang.byte valueof(java.lang.string,int); public static java.lang.byte valueof(java.lang.string); public static java.lang.byte decode(java.lang.string); public int compareto(java.lang.byte); public static java.lang.string tostring(short); public static short parseshort(java.lang.string); public static short parseshort(java.lang.string,int); public static java.lang.short valueof(java.lang.string,int); public static java.lang.short valueof(java.lang.string); public static java.lang.short valueof(short); public static java.lang.short decode(java.lang.string); public static short reversebytes(short); public int compareto(java.lang.short); public static java.lang.string tostring(int,int); public static java.lang.string tohexstring(int); public static java.lang.string tooctalstring(int); public static java.lang.string tobinarystring(int); public static java.lang.string tostring(int); public static int parseint(java.lang.string,int); public static int parseint(java.lang.string); public static java.lang.integer valueof(java.lang.string,int); public static java.lang.integer valueof(java.lang.string); public static java.lang.integer valueof(int); public static java.lang.integer getinteger(java.lang.string); public static java.lang.integer getinteger(java.lang.string,int); public static java.lang.integer getinteger(java.lang.string,java.lang.integer); public static java.lang.integer decode(java.lang.string); public static int highestonebit(int); public static int lowestonebit(int); public static int numberofleadingzeros(int); public static int numberoftrailingzeros(int); public static int bitcount(int); public static int rotateleft(int,int); public static int rotateright(int,int); public static int reverse(int); public static int signum(int); public static int reversebytes(int); public int compareto(java.lang.integer); public static java.lang.string tostring(long,int); public static java.lang.string tohexstring(long); public static java.lang.string tooctalstring(long); public static java.lang.string tobinarystring(long); public static java.lang.string tostring(long); public static long parselong(java.lang.string,int); public static long parselong(java.lang.string); public static java.lang.long valueof(java.lang.string,int); public static java.lang.long valueof(java.lang.string); public static java.lang.long valueof(long); public static java.lang.long decode(java.lang.string); public static java.lang.long getlong(java.lang.string); public static java.lang.long getlong(java.lang.string,long); public static java.lang.long getlong(java.lang.string,java.lang.long); public static long highestonebit(long); public static long lowestonebit(long); public static int numberofleadingzeros(long); public static int numberoftrailingzeros(long); public static int bitcount(long); public static long rotateleft(long,int); public static long rotateright(long,int); public static long reverse(long); public static int signum(long); public static long reversebytes(long); public int compareto(java.lang.long); public static java.lang.string tostring(float); public static java.lang.string tohexstring(float); public static java.lang.float valueof(java.lang.string); public static java.lang.float valueof(float); public static float parsefloat(java.lang.string); public static boolean isnan(float); public static boolean isinfinite(float); public static int floattointbits(float); public static int floattorawintbits(float); public static float intbitstofloat(int); public static int compare(float,float); public boolean isnan(); public boolean isinfinite(); public int compareto(java.lang.float); public static java.lang.string tostring(double); public static java.lang.string tohexstring(double); public static java.lang.double valueof(java.lang.string); public static java.lang.double valueof(double); public static double parsedouble(java.lang.string); public static boolean isnan(double); public static boolean isinfinite(double); public static long doubletolongbits(double); public static long doubletorawlongbits(double); public static double longbitstodouble(long); public static int compare(double,double); public boolean isnan(); public boolean isinfinite(); public int compareto(java.lang.double); public <init>(byte); public <init>(short); public <init>(int); public <init>(long); public <init>(float); public <init>(double); public <init>(java.lang.string); public byte bytevalue(); public short shortvalue(); public int intvalue(); public long longvalue(); public float floatvalue(); public double doublevalue(); public int compareto(java.lang.object); public boolean equals(java.lang.object); public int hashcode(); public java.lang.string tostring(); } # remove - string method calls. remove invocations of string # methods without side effects return values not used. -assumenosideeffects public class java.lang.string { public <init>(); public <init>(byte[]); public <init>(byte[],int); public <init>(byte[],int,int); public <init>(byte[],int,int,int); public <init>(byte[],int,int,java.lang.string); public <init>(byte[],java.lang.string); public <init>(char[]); public <init>(char[],int,int); public <init>(java.lang.string); public <init>(java.lang.stringbuffer); public static java.lang.string copyvalueof(char[]); public static java.lang.string copyvalueof(char[],int,int); public static java.lang.string valueof(boolean); public static java.lang.string valueof(char); public static java.lang.string valueof(char[]); public static java.lang.string valueof(char[],int,int); public static java.lang.string valueof(double); public static java.lang.string valueof(float); public static java.lang.string valueof(int); public static java.lang.string valueof(java.lang.object); public static java.lang.string valueof(long); public boolean contentequals(java.lang.stringbuffer); public boolean endswith(java.lang.string); public boolean equalsignorecase(java.lang.string); public boolean equals(java.lang.object); public boolean matches(java.lang.string); public boolean regionmatches(boolean,int,java.lang.string,int,int); public boolean regionmatches(int,java.lang.string,int,int); public boolean startswith(java.lang.string); public boolean startswith(java.lang.string,int); public byte[] getbytes(); public byte[] getbytes(java.lang.string); public char charat(int); public char[] tochararray(); public int comparetoignorecase(java.lang.string); public int compareto(java.lang.object); public int compareto(java.lang.string); public int hashcode(); public int indexof(int); public int indexof(int,int); public int indexof(java.lang.string); public int indexof(java.lang.string,int); public int lastindexof(int); public int lastindexof(int,int); public int lastindexof(java.lang.string); public int lastindexof(java.lang.string,int); public int length(); public java.lang.charsequence subsequence(int,int); public java.lang.string concat(java.lang.string); public java.lang.string replaceall(java.lang.string,java.lang.string); public java.lang.string replace(char,char); public java.lang.string replacefirst(java.lang.string,java.lang.string); public java.lang.string[] split(java.lang.string); public java.lang.string[] split(java.lang.string,int); public java.lang.string substring(int); public java.lang.string substring(int,int); public java.lang.string tolowercase(); public java.lang.string tolowercase(java.util.locale); public java.lang.string tostring(); public java.lang.string touppercase(); public java.lang.string touppercase(java.util.locale); public java.lang.string trim(); } # remove - stringbuffer method calls. remove invocations of stringbuffer # methods without side effects return values not used. -assumenosideeffects public class java.lang.stringbuffer { public <init>(); public <init>(int); public <init>(java.lang.string); public <init>(java.lang.charsequence); public java.lang.string tostring(); public char charat(int); public int capacity(); public int codepointat(int); public int codepointbefore(int); public int indexof(java.lang.string,int); public int lastindexof(java.lang.string); public int lastindexof(java.lang.string,int); public int length(); public java.lang.string substring(int); public java.lang.string substring(int,int); } # remove - stringbuilder method calls. remove invocations of stringbuilder # methods without side effects return values not used. -assumenosideeffects public class java.lang.stringbuilder { public <init>(); public <init>(int); public <init>(java.lang.string); public <init>(java.lang.charsequence); public java.lang.string tostring(); public char charat(int); public int capacity(); public int codepointat(int); public int codepointbefore(int); public int indexof(java.lang.string,int); public int lastindexof(java.lang.string); public int lastindexof(java.lang.string,int); public int length(); public java.lang.string substring(int); public java.lang.string substring(int,int); } -libraryjars ..\libs\easyfacebookandroidsdk_2.3.jar -libraryjars ..\libs\acra-4.2.3.jar -libraryjars ..\libs\flurryagent.jar -libraryjars ..\libs\paypal_mpl.jar -libraryjars ..\libs\ksoap2-android-assembly-2.6.0-jar-with-dependencies.jar -libraryjars ..\libs\proguard.jar -keep class org.bj.food4all.cooktales.fonttypes -keepattributes ** -keepclasseswithmembers class * { public <init>(android.content.context, android.util.attributeset); } -keepclasseswithmembers class * { public <init>(android.content.context, android.util.attributeset, int); } -keepclassmembers class * extends android.content.context { public void *(android.view.view); public void *(android.view.menuitem); } -keepclassmembers class * implements android.os.parcelable { static android.os.parcelable$creator creator; } -keepclassmembers class **.r$* { public static <fields>; } -dontskipnonpubliclibraryclassmembers #acra specifics # need line numbers in our stack traces otherwise pretty useless -renamesourcefileattribute sourcefile -keepattributes sourcefile,linenumbertable # acra needs "annotations" add this... -keepattributes *annotation* # keep class logging show 'acra' , not obfuscated name 'a'. # note: if removing log messages elsewhere in file isn't necessary -keep class org.acra.acra { *; } # keep around enums acra needs -keep class org.acra.reportinginteractionmode { *; } # keep otherwise removed proguard -keep public class org.acra.errorreporter { public void addcustomdata(java.lang.string,java.lang.string); } # keep otherwise removed proguard -keep public class org.acra.errorreporter { public org.acra.errorreporter$reportssenderworker handlesilentexception(java.lang.throwable); } -keep public class org.bj.food4all.** { public protected *; }
thanks
Comments
Post a Comment