一、shrinkResources 作用
android {
buildTypes {
debug {
minifyEnabled false
shrinkResources false
}
release {
minifyEnabled true
shrinkResources true
}
}
}
shrinkResources = true作用是删除无用的Resource,是与minifyEnabled 一起使用,minifyEnabled =true是开启混淆。
二、使用shrinkResources 出现的问题
android 使用了shrinkResources = true后,有时候会出现问题。
最近项目集成阿里百川的意见反馈,添加的安全图片只是做验证,项目里面未引用。debug模式自然是没问题,因为shrinkResources 设置的是false,但在release 模式下,当shrinkResources = true的时候,集成的意见反馈出问题。
解决办法如下:
新增res/raw/keep.xml文件,在里面把需要保留的资源文件列举出来
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
tools:keep="@drawable/yw_1222"/>
如此问题就解决了。如果项目中需要keep多个资源可以tools:keep="@drawable/a,@layout/b,@layout/c"。意思就是在混淆的时候这些资源不要删除。