错误提示:
Error: Expected resource of type styleable [ResourceType]
这个错误在编译运行时候并不会出现,但是当需要编译打包的时候,就会爆出这个异常。
这个错误出现的位置位于自定义View中,代码如下:
TypedArray a = context.obtainStyledAttributes(attrs, ATTRS);
tabTextSize = a.getDimensionPixelSize(0, tabTextSize);
tabTextColor = a.getColor(1, tabTextColor);
a.recycle();
点击异常信息会定位到第三行,只有当 TypedArray 获取第二个属性以后数据时,才会出现此异常,a.getDimensionPixelSize(0, tabTextSize);
这句则不会报错,其实这应该是一个警告,所以才会在调试的时候正常编译,但却在编译签名包的时候失败。
解决办法:
解决办法就是在使用 TypedArray 的方法处,加上 @SuppressWarnings("ResourceType")
,这样即可过滤该警告,可以正常通过签名编译。例如:
@SuppressWarnings("ResourceType")
public void initView() {
TypedArray a = context.obtainStyledAttributes(attrs, ATTRS);
tabTextSize = a.getDimensionPixelSize(0, tabTextSize);
tabTextColor = a.getColor(1, tabTextColor);
a.recycle();
}
参考链接