【Android】Error: Expected resource of type styleable [ResourceType]

来源:互联网 发布:市场花园知乎 编辑:程序博客网 时间:2024/06/17 23:10

错误提示

Error: Expected resource of type styleable [ResourceType] 
这个错误在编译运行时候并不会出现,但是当需要编译打包的时候,就会爆出这个异常。

这个错误出现的位置位于自定义View中,代码如下:

TypedArray ta = mContext.obtainStyledAttributes(attrs);boolean hasBottomLine = ta.getBoolean(0, false);boolean hasTopLine = ta.getBoolean(1, false);
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

点击异常信息会定位到第三行,只有当 TypedArray 获取第二个属性以后数据时,才会出现此异常,ta.getBoolean(0, false) 这句则不会报错,其实这应该是一个警告,所以才会在调试的时候正常编译,但却在编译签名包的时候失败。

解决办法

解决办法就是在使用 TypedArray 的方法处,加上 @SuppressWarnings("ResourceType") ,这样即可过滤该警告,可以正常通过签名编译。例如:

@SuppressWarnings("ResourceType")public void initView() {    TypedArray ta = mContext.obtainStyledAttributes(attrs);    boolean hasBottomLine = ta.getBoolean(0, false);    boolean hasTopLine = ta.getBoolean(1, false);    ta.recycle();}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

参考链接

http://stackoverflow.com/questions/26360954/obtainstyledattributes-annotated-with-styleableres-suppress-warnings

0 0