我们如何在Android项目中添加R8规则以实现依赖关系,并从文件化和混淆中排除文件和包?
答案 0 :(得分:1)
添加R8规则与progurad规则相似,但是某些依赖项我们不需要在R8中添加规则,可能会在文档中提到。从Android Studio 3.4 R8起,默认代码收缩器。
在 build.gradle 应用程序模块中添加此行
buildTypes {
release {
minifyEnabled true //Important step
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
选择proguard-rules.pro
添加排除包或文件的规则
-keep class com.xyz.model.** { *; }
上面的代码将模型包从minifing中排除,最好将网络pojo类从minifing中排除。
如果您添加的任何依赖项也都添加了proguard / R8规则,请注意:像Retrofit这样的库,我们不需要在R8中添加它,它将在相应的github页面中提及
-keepattributes *Annotation*
-keepclassmembers class * {
@org.greenrobot.eventbus.Subscribe <methods>;
}
-keep enum org.greenrobot.eventbus.ThreadMode { *; }
# Only required if you use AsyncExecutor
-keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent {
<init>(java.lang.Throwable);
}
以上示例适用于绿色机器人防护规则。只需将其复制粘贴到您的 proguard-rules.pro 文件
中即可