由于把android studio升级后出现打包的问题,在思考低版本的为什么没有这样的问题而新的版本出现了这样的问题。该如何解决;
Error:Error: Expected a color resource id (R.color.) but received an RGB integer [ResourceType]
在网上解决的办法基本上都是:
在buidle配置中加入
android {
lintOptions {
disable “ResourceType”
}
}
或者加入
android{
lintOptions {
checkReleaseBuilds false
}
}
这样的意思引用的配置是禁用资源类型检测,这样在打包过程中就不会因为资源类型不匹配而提示错误了。
最根本的问题还是没有解决
但是我追查到最终的问题是引用到ResourceType资源时的出现问题,
错误的代码:
public void setBorderColor(@ColorRes int borderColor) {
if (borderColor == mBorderColor) {
return;
}mBorderColor = borderColor;
mBorderPaint.setColor(getResources().getColor(mBorderColor));
invalidate();
}
这说明了一个编码的规范性的问题。
@SuppressLint(“ResourceType”)
public void setBorderColor(@ColorRes int borderColor) {
if (borderColor == mBorderColor) {
return;
}mBorderColor = borderColor;
mBorderPaint.setColor(getResources().getColor(mBorderColor));
invalidate();
}
加入@SuppressLint(“ResourceType”)的引用就没有问题了。
我的理解还是是那个编码的规范的问题,依赖引用的个个问题。
不一定是你想要的答案,需要能帮助有需要的人。