2016-03-28 41 views
27

看看這段代碼片段。 我收到最後一行的錯誤,因爲我正在傳遞'索引'而不是資源。我認爲這是一個不起眼的問題,並試圖壓制它。 然後,我注意到,只有在構建版本時我纔會收到此錯誤。它在構建調試時工作正常。我完全無能爲力。任何人都可以對我做錯的事情有所瞭解。錯誤:類型風格的預期資源[ResourceType]錯誤

//Get paddingLeft, paddingRight 
     int[] attrsArray = new int[]{ 
       android.R.attr.paddingLeft, // 0 
       android.R.attr.paddingRight, // 1 
     }; 
     TypedArray ta = context.obtainStyledAttributes(attrs, attrsArray); 
     if (ta == null) return; 
     mPaddingLeft = ta.getDimensionPixelSize(0, 0); 
     mPaddingRight = ta.getDimensionPixelSize(1/*error here*/, 0); 
+3

一樣,我不知道爲什麼沒有顯示數組中的第一個元素此錯誤,例如。它僅顯示以下內容。如果我創建兩個數組,每個數組都有一個元素,那麼就沒有錯誤。有人可以解釋這個嗎? – Sandra

回答

56

我在嘗試構建簽名的apk時遇到了同樣的問題。 通過加入@SuppressWarnings("ResourceType")來解決它的警告,現在它工作正常。

+3

或者您可以在該行之前使用// noinspection ResourceType來避免僅在該行代碼中進行檢查 – Hugo

5

@StyleableRes int index = 1;

mPaddingRight = ta.getDimensionPixelSize(index,0);

0
TypedValue outValue = new TypedValue(); 
context.getTheme().resolveAttribute(android.R.attr.paddingLeft, outValue, true); 
int paddingLeft = outValue.data; 

重複的android.R.attr.paddingRight