错误提示
Error: Expected resource of type styleable [ResourceType]
这个错误在编译运行时候并不会出现,但是当需要编译打包的时候,就会爆出这个异常。
try {
mStatusBarAvailable = a.getBoolean(0, false);
mNavBarAvailable = a.getBoolean(1, false);
} finally {
a.recycle();
}
点击异常信息会定位到第三行,只有当 TypedArray 获取第二个属性以后数据时,才会出现此异常,ta.getBoolean(0, false) 这句则不会报错,其实这应该是一个警告,所以才会在调试的时候正常编译,但却在编译签名包的时候失败。
解决办法
解决办法就是在使用 TypedArray 的方法处,加上 @SuppressWarnings(“ResourceType”) ,这样即可过滤该警告,可以正常通过签名编译。例如:
@SuppressWarnings("ResourceType")
public SystemBarTintManager(Activity activity) {
Window win = activity.getWindow();
ViewGroup decorViewGroup = (ViewGroup) win.getDecorView();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
// check theme attrs
int[] attrs = {android.R.attr.windowTranslucentStatus,
android.R.attr.windowTranslucentNavigation};
TypedArray a = activity.obtainStyledAttributes(attrs);
try {
mStatusBarAvailable = a.getBoolean(0, false);
mNavBarAvailable = a.getBoolean(1, false);
} finally {
a.recycle();
}
}
}
解决Android编译警告
本文介绍了一种在Android开发中遇到的编译警告问题,即使用TypedArray获取资源时出现的Expectedresourceoftypestyleable[ResourceType]警告。通过添加注解@SuppressWarnings(“ResourceType”)来过滤掉这一警告,确保了应用可以正常通过编译。
297

被折叠的 条评论
为什么被折叠?



