项目中添加了各国国旗的资源,然后根据国家名称,找到不同的国旗图标。Android studio debug 模式下没有问题的,但是项目发布release版本后,有的国家的国旗显示为黑色的框。
如图:
根据name 找图片资源的方法:
public static int getResource(Context context, String imageName) {return context.getResources().getIdentifier(imageName, "drawable", context.getPackageName());}
打印资源id, 是找到了的。找了好久问题的原因,都没有解决。
后来想到 debug模式下没有问题, release有问题,看是否是两种模式的配置有什么不同
发现 ,release 模式添加了
shrinkResources true : 去除无用资源种终于解决
终于解决。这句话的意思是 打包的时候,会删除没有用到的资源。
而国旗显示是根据 服务器返回的名称来查找的,在项目中是没有直接引用的,所以被当做无用资源。
所以,使用需谨慎。