在proguard的舊版本中只會出現類似
“Can't read proguard.ClassPathEntry@1a0c10f (No such file or directory)”
這種提示是沒有找到要混淆的jar包!但是舊版本也不提示具體找不到哪個jar包!
所以下載proguard4相應的新版本,新版本內容如下
1.
http://ishare.iask.sina.com.cn/f/12510145.html?from=like (這個版本如果有錯誤,會進行詳細的提示)
2.
3.在proguard.cfg設定 不混淆第三方jar包 例如:
-dontwarn com.j256.ormlite.android.**
-dontwarn com.j256.ormlite.dao.**
-dontwarn com.j256.ormlite.db.**
-dontwarn com.j256.ormlite.field.**
-dontwarn com.j256.ormlite.logger.**
-dontwarn com.j256.ormlite.misc.**
-dontwarn com.j256.ormlite.stmt.**
-dontwarn com.j256.ormlite.support.**
-dontwarn com.j256.ormlite.table.**
-keep class com.j256.ormlite.** { *; }
4. 在eclipse中匯出混淆後的程式,選擇匯出簽名或者未簽名的程式,如:
-optimizationpasses 5
-dontusemixedcaseclassnames 【混淆時不會產生形形色色的類名 】
-dontskipnonpubliclibraryclasses 【指定不去忽略非公用的庫類。 】
-dontpreverify 【不預校正】
-verbose -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 public abstract interface com.asqw.android.Listener{
public protected <methods>; 【所有方法不進行混淆】
}
-keep public class com.asqw.android{
public void Start(java.lang.String); 【對該方法不進行混淆】
}
-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 *;
}