簡體   English   中英

Android發布錯誤:預期顏色資源ID(R.color。)但收到RGB整數

[英]Android Release error: Expected a color resource id (R.color.) but received an RGB integer

我在市場上申請了一年。 上周,我更改了我的應用程序的源代碼。 當我想構建發布版本時,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。

你知道什么事發生?

謝謝。

像這樣做:

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

雖然為時已晚,但這個答案適用於那些在像我這樣的版本構建時仍然會出現此錯誤的人。 不知道這是一個解決方案還是只是解決方法。

@SuppressLint("ResourceType")

在您的方法簽名中使用此選項,如下所示,您將收到錯誤。

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

通過使用它,您將能夠在沒有該錯誤的情況下進行發布構建。

如果您在此方法中使用了anotation @ColorRes,則刪除它。 apk將成功生成。 請參閱SO答案以進一步闡明棉絨檢查。 答案如下:

Java注釋可以在您自己的代碼中支持這些檢查。 它們都可以在android.support.annotations包中找到:IdRes DrawableRes LayoutRes StringRes ColorRes&c在這種情況下,例如,我可以使用:

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

Android Studio將檢查提供的資源ID是否確實用於布局。 而且,這些注釋被導出,因此在設計庫時它們特別有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM