导致问题原因:是由于设置shrinkResources true引起的。
在proguard-rules.pro文件中配置此方法是为了删除无效的Resource。
解决方案:创建res/raw/keep.xml,在keep.xml文件中添加不想被删除的资源。
1.只有minififyEnable false 或者 minififyEnable false && shrinkResources true
资源文件和layout都存在且是有内容的
2.只有minifyEnable true
文件大小改变,包变小
资源文件和layout都存在且是有内容的
3.minifyEnable true && shrinkResources true
资源文件在但是没有内容大小都变成67字节,layout文件内容被清空
4.minifyEnable true && shrinkResources true 在res/raw/keep.xml(避免被误删除)写了配置的
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
tools:keep="@drawable/bg0,@drawable/bg1"/>
没有在配置文件中声明保存的文件没有内容,声明保存的文件有内容(资源文件和layout文件)
注意:string.xml中没有被引用的怎么设置都不会被删除
可以通过gradlew clean assembleRelease - info来获得APK缩减资源的概览
当您压缩资源时,Gradle Console 会显示它从应用软件包中移除的资源的摘要。例如:
:android:shrinkDebugResources
Removed unused resources: Binary resource data reduced from 2570KB to 1711KB: Removed 33%
:android:validateDebugSigning
网搜资料
引用:https://blog.csdn.net/u011889786/article/details/56686492