-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
的使用示例。
快给毕老师唱一个:
MyBatis 3.3.1 批量插入多行回写自增id
CarlaF:
Java void关键字
繁星下的小草:
Java获取汉字的拼音
良木66: