java - Proguard on ShareSDK. Got an Exception NoClassDefFoundError: com.mob.tools.utils.R -


i using proguard obfuscate android application. application using sharesdk library.

while use share function. got noclassdeffounderror title.

i have add proguard-rules in proguard-rules.pro below:

-keep class cn.sharesdk.**{*;} -keep class com.sina.**{*;} -keep class **.r$* {*;} -keep class **.r{*;} -dontwarn cn.sharesdk.** -dontwarn **.r$* -keep class m.framework.**{*;} -keep class com.mob.**{*;} -dontwarn com.mob.** 

and have checked mapping.txt having sentences below:

com.mob.tools.utils.r -> com.mob.tools.utils.r: float density -> density int devicewidth -> devicewidth java.lang.object rp -> rp void <init>() -> <init> ... 

so think class com.mob.tools.utils.r kept.

can tell me how can find class?

add proguard.pro file

    -keepclasseswithmembers class * {     public <init>(android.content.context, android.util.attributeset); } -keepclasseswithmembers class * {     public <init>(android.content.context, android.util.attributeset, int); } -keepclassmembers enum * {   public static **[] values();   public static ** valueof(java.lang.string);  } -keepclassmembers class * implements android.os.parcelable {     static ** creator; } -keepclassmembers class **.r$* {     public static <fields>; } -keepclassmembers class * {     @android.webkit.javascriptinterface <methods>; } -keepclassmembers class * implements java.io.serializable {     static final long serialversionuid;     private 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(); }  -assumenosideeffects class android.util.log {     public static boolean isloggable(java.lang.string, int);     public static int v(...);     public static int i(...);     public static int w(...);     public static int d(...);     public static int e(...); } -adaptresourcefilenames    **.properties,**.gif,**.jpg,**.png,**.xml -adaptresourcefilecontents **.properties,**.xml -dontwarn android.** -dontwarn android.support.** -dontwarn android.support.design.* -dontwarn org.objenesis.** 

update

add following proguard file.

-dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -verbose -ignorewarnings -repackageclasses ''     -allowaccessmodification -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* -keepattributes *annotation*, enclosingmethod -keepattributes signature   -keepclassmembers public class cn.sharesdk.**{ <init>(...); *; }  -keepclassmembers public class com.sina.**{     <init>(...);     *;     } 

Comments

Popular posts from this blog

amazon web services - S3 Pre-signed POST validate file type? -

c# - Check Keyboard Input Winforms -