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. 箭头函数的基础使用
  2. NPM 和webpack 的基础使用
  3. Python list sort方法的具体使用
  4. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  5. Android(安卓)- 插件使用整理 Android(安卓)Styler
  6. android注解框架ButterKnife详细使用文档(v7.0.1)
  7. 关于Android中是否可以使用全局变量的问题
  8. Android(安卓)Studio编译问题:ProcessException: org.gradle.proc
  9. Android(安卓)sqlite例子 有外键的使用

随机推荐

  1. 前端工程师想要做一个Vue-ts后台管理系统
  2. kubernetes生产实践之mysql
  3. 使用supervisor 管理logstash
  4. ProBuilder快速原型开发技术 ---模型精细
  5. 数字孪生与物联网(IoT)底层伴生技术的强联
  6. RHEL7 root 开启FTP服务
  7. 如何解决Plao Alto防火墙的V*P*N客户端Gl
  8. Nginx编译报错解决方法
  9. ceph-块设备部署
  10. postgresql12 流复制搭建