default.properties文件加入:

target=android-7
proguard.config=proguard.cfg

以上两句


proguard.cfg 文件:

-optimizationpasses 7

-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 class com.baidu.mapapi.** {*;} 


-keepclasseswithmembernames class * {
    native ;
}

-keepclasseswithmembernames class * {
    public (android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembernames class * {
    public (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 *;
}

-keep public class * extends android.view.View {
    public (android.content.Context);
    public (android.content.Context, android.util.AttributeSet);
    public (android.content.Context, android.util.AttributeSet, int);
    public void set*(...);
}

-keepclassmembers class **.R$* {
    public static ;
}


-keepnames class * implements java.io.Serializable

-keepclassmembers class * implements java.io.Serializable {
   static final long serialVersionUID;
   private static final java.io.ObjectStreamField[] serialPersistentFields;
   !static !transient ;
   private void writeObject(java.io.ObjectOutputStream);
   private void readObject(java.io.ObjectInputStream);
   java.lang.Object writeReplace();
   java.lang.Object readResolve();
}

补充一下:
 

-dontwarn com.google.android.gcm.**

-dontwarn net.nend.android.** 

-dontwarn com.google.ads.** 


也可以用这样的方式解决使用第三方包后出现的无法混淆的问题,大概的异常是:


 Note: there were 160 duplicate class definitions.

Warning: com.google.ads.m: can't find referenced class com.google.ads.internal.state.AdState

Warning: com.google.ads.m: can't find referenced class com.google.ads.internal.state.AdState

     You should check if you need to specify additional program jars.



更多相关文章

  1. Android加载html实现文件上传功能
  2. Android -- App生成快捷方式
  3. Android中将assets中的文件拷贝到sd卡
  4. db文件查看工具SQLiteExpert
  5. android proc 虚拟文件系统
  6. Android 9 读写SD卡文件
  7. Android zip文件压缩解压缩
  8. Android studio 53 文件下载
  9. android 文件系统分析

随机推荐

  1. Android(安卓)代码监控apk安装,卸载,替换
  2. Android(安卓)studio:Failed to create J
  3. android scroll view infinite scroll
  4. Android(安卓)Dev入门笔记
  5. android外部数据库的导入使用
  6. Android语音识别功能使用
  7. Android(安卓)获取TextView总行数
  8. Android(安卓)Studio 更新SDK 腾讯镜像使
  9. android 输入对话框
  10. Duplicate Provider Issues in Google Pl