Java ShareSDK上的Proguard。获取异常NoClassDefFoundError:com.mob.tools.utils.R
我正在使用Proguard混淆我的Android应用程序。我的应用程序正在使用ShareSDK库 当我使用共享功能时。我的标题是NoClassDefFoundError 我在我的proguard-rules.pro中添加了proguard规则,如下所示:Java ShareSDK上的Proguard。获取异常NoClassDefFoundError:com.mob.tools.utils.R,java,android,proguard,Java,Android,Proguard,我正在使用Proguard混淆我的Android应用程序。我的应用程序正在使用ShareSDK库 当我使用共享功能时。我的标题是NoClassDefFoundError 我在我的proguard-rules.pro中添加了proguard规则,如下所示: -keep class cn.sharesdk.**{*;} -keep class com.sina.**{*;} -keep class **.R$* {*;} -keep class **.R{*;} -dontwarn cn.share
-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.**
我已经检查了mapping.txt,其中包含以下句子:
com.mob.tools.utils.R -> com.mob.tools.utils.R:
float density -> density
int deviceWidth -> deviceWidth
java.lang.Object rp -> rp
void <init>() -> <init>
...
com.mob.tools.utils.R->com.mob.tools.utils.R:
浮动密度->密度
int deviceWidth->deviceWidth
java.lang.Object rp->rp
void()->
...
所以我认为类com.mob.tools.utils.R
被保留了下来
有人能告诉我如何找到这个类吗?将这个添加到您的proguard.pro文件中
-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.**
-keepclassswithmembers类*{
public(android.content.Context、android.util.AttributeSet);
}
-keepclassswithmembers类*{
public(android.content.Context,android.util.AttributeSet,int);
}
-keepclassmembers枚举*{
公共静态**[]值();
公共静态**valueOf(java.lang.String);
}
-keepclassmembers类*实现android.os.Parcelable{
静态**创建者;
}
-keepclassmembers类**.R$*{
公共静态;
}
-keepclassmembers类*{
@android.webkit.JavascriptInterface;
}
-keepclassmembers类*实现java.io.Serializable{
静态最终长SerialVersionId;
私有静态final java.io.ObjectStreamField[]serialPersistentFields;
私有void writeObject(java.io.ObjectOutputStream);
私有void readObject(java.io.ObjectInputStream);
java.lang.Object WriterReplace();
java.lang.Object readResolve();
}
-assumenosideeffects类android.util.Log{
公共静态布尔isLoggable(java.lang.String,int);
公共静态INTV(…);
公共静态int i(…);
公共静态int w(…);
公共静态int d(…);
公共静态INTE(…);
}
-AdapterResourceFileNames**.properties、**.gif、**.jpg、**.png、**.xml
-AdapterResourceFileContents**.properties,**.xml
-dontwarn安卓**
-dontwarn android.support**
-dontwarn android.support.design*
-dontwarn org.objenesis**
更新
将以下内容也添加到proguard文件中
-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>(...);
*;
}
-dontusemixedcaseclassnames
-DontskipnonPublicLibraryClass
-不要翻转
-冗长的
-忽视警告
-重新打包类“”
-允许访问修改
-优化!代码/简化/算术,!字段/*,!类/合并/*
-keepattributes*注释*,封闭方法
-保留署名
-keepclassmembers公共类cn.sharesdk**{
(...);
*;
}
-keepclassmembers公共类com.sina**{
(...);
*;
}
谢谢,但我仍然收到相同的错误。我看到mapping.txt中有com.mob.tools.utils.R->com.mob.tools.utils.R:
,这意味着类被保留了,不是吗?