Android发布错误:预期颜色资源ID(R.color。)但收到RGB整数

时间:2016-04-20 20:03:59

标签: android colors r.java-file expected-exception

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

“错误:预期颜色资源ID(R.color。)但收到RGB整数[ResourceType]”

颜色仅用于此部分代码,我没有对此部分进行任何更改:

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

很奇怪,在调试版Android Studio中没有抛出任何错误,我可以构建apk。

你知道什么事发生吗?

感谢。

3 个答案:

答案 0 :(得分:2)

这样做:

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

答案 1 :(得分:1)

虽然为时已晚,但这个答案适用于那些在像我这样的版本构建时仍然会出现此错误的人。不知道它是解决方案还是解决方法。

@SuppressLint("ResourceType")

使用此方法签名,如下所示,您会收到错误。

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

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

答案 2 :(得分:0)

如果您在此方法中使用了anotation @ColorRes,则删除它。 apk将成功生成。 请参阅SO Answer以进一步阐明棉绒检查。答案如下:

  

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

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

并且Android Studio将检查提供的资源ID是否确实存在   用于布局。而且,这些注释被导出,所以它们可以   在设计图书馆时特别有用。