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
Post a Comment