Android 版本错误:需要颜色资源 ID (R.color.),但收到 RGB 整数



>我在市场上有一年的应用程序。上周,我更改了应用程序的源代码。当我想构建发布版本时,Android Studio 抛出了一个错误:

"错误:需要颜色资源 ID (R.color。但收到一个 RGB 整数 [资源类型]"

颜色只用在这部分代码中,我没有在这部分做任何更改:

if (android.os.Build.VERSION.SDK_INT >= 16) {
            rlFlash.setBackground(new ColorDrawable
                    (Color.parseColor(("#86cc55"))));
        }
        else{
            rlFlash.setBackgroundDrawable(new ColorDrawable
                    (Color.parseColor(("#86cc55"))));
        }
奇怪的是,

在调试版本中,Android 工作室没有抛出任何错误,我可以构建 apk。

你知道发生了什么吗??

谢谢。

虽然为时已晚,但这个答案适用于那些像我一样在进行发布构建时可能仍然会收到此错误的人。不知道这是一个解决方案还是只是解决方法。

@SuppressLint("ResourceType")

在您的方法签名处使用它,如下所示,您收到错误。

@SuppressLint("ResourceType")
public void aMethodWhereYouMayGetTheError(){
}

通过使用此功能,您将能够在没有该错误的情况下进行发布构建。

这样做:

rlFlash.setBackgroundColor(Color.parseColor("#86cc55"));

如果您在此方法中使用了注释@ColorRes,请将其删除。apk 将成功生成。请参阅 SO 答案以进一步澄清有关棉绒检查的信息。答案引用如下:

有一些 Java 注释可以在您自己的代码中支持这些检查。 它们都可以在 android.support.annotations 包中找到: IdRes DrawableRes LayoutRes StringRes ColorRes &c 在这种情况下, 例如,我可以使用:

private void mySetContentView(@LayoutRes int resourceId) {
    setContentView(resourceId); 
} 

安卓工作室将检查提供的资源 ID 是否确实是 对于布局。此外,这些注释是导出的,因此它们可以 在设计库时特别有用。

最新更新