2016-03-28 14 views
27

Hãy xem đoạn mã này. Tôi gặp lỗi với dòng cuối cùng, vì tôi đang chuyển 'chỉ mục' thay vì tài nguyên. Tôi nghĩ đó là một vấn đề lint và cố gắng ngăn chặn nó. Sau đó, tôi nhận thấy tôi nhận được lỗi này chỉ khi tôi xây dựng để phát hành. Nó hoạt động tốt khi xây dựng để gỡ lỗi. Tôi hoàn toàn không biết gì. Bất cứ ai có thể ném một số ánh sáng vào những gì tôi đang làm sai.Lỗi: Tài nguyên dự kiến ​​loại lỗi [ResourceType] có thể tạo kiểu

//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

Tôi không biết tại sao lỗi này không được hiển thị cho các phần tử đầu tiên trong mảng, ví dụ. Nó chỉ được hiển thị cho những điều sau đây. Nếu tôi tạo hai mảng với một phần tử, thì không có lỗi. Ai đó có thể giải thích điều này? – Sandra

Trả lời

56

Tôi gặp vấn đề tương tự khi cố gắng tạo APK đã ký. Giải quyết nó bằng cách thêm @SuppressWarnings("ResourceType") để ngăn chặn cảnh báo, bây giờ nó hoạt động tốt.

+3

Hoặc bạn chỉ có thể sử dụng // loại tài nguyên không có định dạng ngay trước dòng đó để tránh kiểm tra chỉ trong dòng mã đó – Hugo

5

@StyleableRes int index = 1;

mPaddingRight = ta.getDimensionPixelSize (chỉ mục, 0);

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

Lặp lại tương tự cho android.R.attr.paddingRight

Các vấn đề liên quan