混淆android的jar包配置文件proguard.cfg如下

-injars libs\your_library.jar
-outjars libs\your_library_out.jar

-libraryjars 'E:\program_tools\android-sdk\platforms\android-9\android.jar'

-optimizationpasses 5
-dontusemixedcaseclassnames
-ignorewarning
-dontskipnonpubliclibraryclasses
-dontoptimize
-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

-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 *;
}


如上的红色文字非常重要

-injars 表示你要混淆的jar文件

-outjars 是混淆后的jar文件名

-libraryjars 是混淆时需要引用的android库

-ignorewarning 表示混淆时忽略所以的警告

-dontoptimize 不进行优化,这句代码非常重要。并且配置中不能有-dontpreverify字段;-dontpreverify在混淆jar时没有问题但是在apk应用中使用该jar后对apk进行混淆时就会失败。


如果项目中使用了jar库,则proguard.cfg文件的配置如下
-optimizationpasses 2
-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

-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 *;
}

上面的配置中 -optimizationpasses 只能为1,2;3以上混淆就会出错!


更多相关文章

  1. Android之Selector、Shape介绍
  2. Android.os.NetworkOnMainThreadException
  3. AndroidStudio用gradle编译中文乱码
  4. 举例说明android中ProgressBar的用法
  5. AndroidStudio打包apk出现的问题 `Error:Execution failed for t
  6. android Imageview 图片覆盖具体实现
  7. Android(安卓)4.4报错,Android(安卓)7.0运行正常 Window type can
  8. android textview系统默认的颜色值是多少
  9. Android(安卓)studio 签名 报错:Could not download groovy-all.j

随机推荐

  1. Python3高级核心技术97讲
  2. K8s-Pod生命周期
  3. Elasticsearch基本CURD操作
  4. Activiti6.0工作流引擎深度解析
  5. 网易 SaaS 产品精益之路 | 从越来越多的
  6. Elasticsearch中的切词怎么实现的?
  7. ZooKeeper原理详解及常用操作
  8. MySQL性能半同步复制VS异步复制
  9. 面试|再次讲解Threadlocal使用及其内存溢
  10. Linux磁盘空间释放问题