Android打包设置shrinkResources true引发的问题

release版本app部分图片不显示,在debug版本又正常。

将apk解压缩后查看drawable 对应的图片时才发现问题所在:部分表情图片文件只有1k且只显示1个像素。原因是:release版本时在build.gradle中将shrinkResources设置为true。shrinkResources为true在打包时会删除没有用到的资源。因为我的资源需要在服务端返回后动态绑定;
通过这种方式加载:resourceName是后端返的(和drawable中图片的名称一致);图片资源没有检测到被使用;
context.getResources().getIdentifier(resourceName ,defType,context.getPackageName());

解决方案:
一 :shrinkResources置为false;
二 :代码中引用图片资源;我是在一个类的构造方法中创建了一个数组,比如类A:
A (){
int[] ids = {R.drawable.picture1,......};
}
A类 推荐使用导出常量类,私有构造方法;
这样检测时发现图片是被引用的就不会删除;

你可能感兴趣的:(Android打包设置shrinkResources true引发的问题)