-keepattributes Exceptions,InnerClasses,...
-keep class com.xxx.A{ *; }
-keep class com.xxx.A$B { *; }
-keep class com.xxx.A$C { *; }

这样可以根据需要只保留A的某一个内部类

以下是proguard文件一部分

#-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod
-keepattributes Exceptions,InnerClasses,...
-keep class com.yulore.reverselookup.api.YuloreWindowConfiguration{ *; }
-keep class com.yulore.reverselookup.api.YuloreWindowConfiguration$Builder{ *; }

注意:第一行和第二行都可以解决问题

今天在使用Proguard keep一个 静态内部类的时候,混淆完之后一直找不到那个静态内部类,内心抓狂啊。最后在stackoverflow上找到了答案:-keepattributes Exceptions,InnerClasses,...-keep class [packagename].A{ *;}-keep class [packagename].A$* {
I Reason 原本debug的程序,跑的OK,编译release后发现JIN找不到Java类里面的一个method了。找了半天发现没有改过method签名啊,后来想想可能是 proguard 把Java里面没有用到的方法给删除了。 II Solvation -keepattributes Inner Class es -keep class com.xxx.A$* { *; ...
关于内部类: 作用: 1. 内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类 2. 内部类的方法可以直接访问外部类的所有数据,包括私有的数据 3. 内部类所实现的功能使用外部类同样可以实现,只是有时使用内部类更方便 分类: 成员内部类 静态内部类 方法内部类(即内部类定义在外部类的方法中) 匿名内部类 例如:要调用一般内部类必须先实例化外部类 ...
文章目录初识 ProGuard ProGuard 详解什么在压缩?什么是 混淆 ?反射 混淆 选项非keep选项keep选项 class _specification ProGuard 其他需要注意的事项一份通用的 ProGuard 混淆 文件 初识 ProGuard Android开发的小伙伴们都或多或少的接触过 混淆 ,很多人都对 混淆 很困惑。需要发版的时候,从网上load一份 混淆 文件,或从其他项目中拷贝一份过来,修改一下,管用...
Proguard 是一个 Java 字节码 混淆 器,可以将 Java 代码 混淆 ,使得反编译后的代码难以阅读和理解。使用 Proguard 可以有效地保护 Java 代码的安全性。以下是一个 Proguard 的使用示例: 1. 在项目的 build.gradle 文件中添加以下代码: buildTypes { release { minifyEnabled true proguard Files getDefault Proguard File(' proguard -android-optimize.txt'), ' proguard -rules.pro' 2. 在项目的根目录下创建一个 proguard -rules.pro 文件,添加以下代码: # 保留所有 public 类和方法 -keep public class * { public *; # 保留所有 Android 系统类和方法 -keep class android.** { # 保留所有 support 库类和方法 -keep class android.support.** { # 保留所有 butterknife 库类和方法 -keep class butterknife.** { # 保留所有 retrofit 库类和方法 -keep class retrofit.** { # 保留所有 okhttp 库类和方法 -keep class okhttp3.** { # 保留所有 gson 库类和方法 -keep class com.google.gson.** { # 保留所有 glide 库类和方法 -keep class com.bumptech.glide.** { 以上就是一个 Proguard 的使用示例。
快给毕老师唱一个: 为什么要关注时分秒呢 ,年月日都一样就好了啊。计算一个after和before 消耗相较于比三个int值,消耗大太多倍了[code=java] final val dayOfYear = dateTime.getDayOfYear(); final val monthValue = dateTime.getMonthValue(); final val year = dateTime.getYear(); final val now = LocalDateTime.now(); return now.getDayOfYear() == dayOfYear&& now.getMonthValue()==monthValue&& now.getYear()==year; [/code] MyBatis 3.3.1 批量插入多行回写自增id CarlaF: 3.5.9版本也不行啊。。。 Java void关键字 繁星下的小草: 表示方法不需要返回值 Java获取汉字的拼音 良木66: 兄弟,写得好,我抄走了 表情包