6

我在市场上申请了一年。上周,我更改了我的应用程序的源代码。当我想构建发布版本时,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"))));
        }

奇怪的是,在 Debug 版本中,Android Studio 没有抛出任何错误,我可以构建 apk。

你知道怎么回事吗??

谢谢。

4

3 回答 3

4

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

@SuppressLint("ResourceType")

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

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

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

于 2018-06-06T04:30:10.900 回答
3

像这样做:

rlFlash.setBackgroundColor(Color.parseColor("#86cc55"));
于 2016-04-21T03:13:44.910 回答
1

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

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

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

Android Studio 将检查提供的资源 id 是否确实用于布局。此外,这些注释是导出的,因此它们在设计库时特别有用。

于 2016-12-06T12:25:19.923 回答