Java ProGuard-混淆apk导致错误
一旦我用ProGuard混淆了代码,我的应用程序就会出现问题。该应用程序启动正常,但一旦我尝试对我的服务器进行REST调用,就会在LogCat中出现以下错误。。而应用程序只是挂起 异常Ljava/lang/NullPointerException;初始化Lorg/codehaus/jackson/map/introspect/VisibilityChecker$Std时抛出强> 谢谢你的帮助。。我搜索了整个互联网:| 以下是我的pro guard.cfg内容:Java ProGuard-混淆apk导致错误,java,android,eclipse,proguard,Java,Android,Eclipse,Proguard,一旦我用ProGuard混淆了代码,我的应用程序就会出现问题。该应用程序启动正常,但一旦我尝试对我的服务器进行REST调用,就会在LogCat中出现以下错误。。而应用程序只是挂起 异常Ljava/lang/NullPointerException;初始化Lorg/codehaus/jackson/map/introspect/VisibilityChecker$Std时抛出 谢谢你的帮助。。我搜索了整个互联网:| 以下是我的pro guard.cfg内容: -optimizationpa
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-dump class_files.txt
-printseeds seeds.txt
-printusage unused.txt
-printmapping mapping.txt
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-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.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService
-keep class com.vungle.sdk.** { *; }
-keep class org.codehaus.** { *; }
-keep class javax.** { *; }
-dontwarn javax.**
-keep class org.apache.** { *; }
-dontwarn org.apache.**
-keep class log4j.** { *; }
-dontwarn log4j.**
-keep class jtwitter4j.** { *; }
-dontwarn twitter4j.**
-keep class android.print.** { *; }
-dontwarn android.print.**
-keep class org.joda.** { *; }
-dontwarn org.joda.**
-keep class org.w3c.** { *; }
-dontwarn org.w3c.**
-keep class org.json.** { *; }
-dontwarn org.json.**
-keep class android.** { *; }
-dontwarn android.**
-keep class java.io.** { *; }
-dontwarn java.io.**
-keep class java.lang.String.** { *; }
-dontwarn java.lang.String.**
-keep class java.beans.** { *; }
-dontwarn java.beans.**
-keepclassmembers class * implements java.io.Serializable
{
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();
}
-keepclasseswithmembernames class * {
native <methods>;
}
-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.app.Activity {
public void *(android.view.View);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
-优化过程5
-dontusemixedcaseclassnames
-DontskipnonPublicLibraryClass
-不要翻转
-冗长的
-dump class_files.txt
-printseeds.txt
-printusage unused.txt
-printmapping.txt
-优化!代码/简化/算术,!字段/*,!类/合并/*
-keep public class*扩展android.app.Activity
-keep public class*扩展android.app.Application
-keep public class*扩展了android.app.Service
-keep public class*扩展了android.content.BroadcastReceiver
-keep public class*扩展了android.content.ContentProvider
-keep public class*扩展了android.app.backup.BackupAgentHelper
-keep public class*扩展了android.preference.preference
-保持公共类com.android.vending.licensing.ILicensingService
-保持类com.vungle.sdk.*{*;}
-保持类org.codehaus.*{*;}
-保持类javax.*{*;}
-DontwarnJavax**
-保持类org.apache.*{*;}
-dontwarn org.apache**
-保持类log4j.*{*;}
-dontwarn log4j**
-保持类jtwitter4j.*{*;}
-dontwarn twitter4j**
-保持类android.print.*{*;}
-dontwarn android.print**
-保持类org.joda.*{*;}
-dontwarn org.joda**
-保持类org.w3c.*{*;}
-dontwarn org.w3c**
-保持类org.json.*{*;}
-dontwarn org.json**
-保持类android.*{*;}
-dontwarn安卓**
-保持类java.io.*{*;}
-dontwarn java.io**
-保持类java.lang.String.*{*;}
-dontwarn java.lang.String**
-保持类java.beans.*{*;}
-dontwarn java.bean**
-keepclassmembers类*实现java.io.Serializable
{
私有静态final java.io.ObjectStreamField[]serialPersistentFields;
私有void writeObject(java.io.ObjectOutputStream);
私有void readObject(java.io.ObjectInputStream);
java.lang.Object WriterReplace();
java.lang.Object readResolve();
}
-KeepClassSwithMemberNames类*{
本地人;
}
-keepclassswithmembers类*{
public(android.content.Context、android.util.AttributeSet);
}
-keepclassswithmembers类*{
public(android.content.Context,android.util.AttributeSet,int);
}
-keepclassmembers类*扩展了android.app.Activity{
public void*(android.view.view);
}
-keepclassmembers枚举*{
公共静态**[]值();
公共静态**valueOf(java.lang.String);
}
-keep class*实现android.os.Parcelable{
公开静态最终android.os.Parcelable$Creator*;
}
你能显示堆栈跟踪吗?这就是问题所在。。没有堆栈跟踪。只有那一行警告。。然后应用程序挂起。在进行模糊处理之前,它可以正常工作。您是否尝试过对模糊字节码进行反编译并查看其差异?我不使用这个特别的模糊器,但如果你在模糊,你应该一直反编译,因为这是你的对手将要做的。看起来你并不孤单,看看这个答案是否有帮助。。。很好的链接。非常感谢。它使我克服了那个特别的错误。