2016-01-26 16 views
25

Tôi vừa cố gắng tạo APK đã ký cho một trong các dự án của mình (nhưng tôi đã thực hiện việc này trước đây), nhưng có thể làAndroidStudio tắt "Nguồn tài nguyên dự kiến ​​của chuỗi loại"

Error:Error: Expected resource of type string [ResourceType]

Đây là bởi vì tôi đang sử dụng @BindString Butterknife của, được tạo thành một cái gì đó như thế

target.settings = res.getString(2131230792); 

làm thế nào tôi có thể làm cho phòng thu không phát hiện này là lỗi? Tôi đã thử tìm kiếm trong cài đặt nhưng không thành công.

+0

tôi đã sử dụng butterknife một lúc rồi, và điều này đã không xuất hiện cho đến khi tôi bắt đầu rối tung với hương vị sản phẩm trong tập tin gradle của tôi. – Chris

+0

Android Studio không bao giờ hết nội dung gây đau đầu cho nhà phát triển –

Trả lời

8

Điều này được báo cáo on the GitHub project. Nó sẽ được sửa trong phiên bản tiếp theo của ButterKnife.

Cách giải quyết được chỉ định there, và là thêm một tập tin lint.xml trên module app với các nội dung sau đây để bỏ qua rằng lỗi trên *$$ViewBinder lớp (những người mà ButterKnife tạo):

<issue id="ResourceType"> 
    <!-- Remove this when this is fixed: https://github.com/JakeWharton/butterknife/issues/338 --> 
    <ignore path="**/*$$ViewBinder.java" /> 
</issue> 
+1

Câu trả lời được chấp nhận tắt tất cả kiểm tra lint ResourceType cho mô-đun của bạn, hiển thị mã nguồn của bạn với nhiều lỗi tiềm ẩn hơn, trong khi câu trả lời này nhắm mục tiêu cụ thể đến các lớp đã tạo. Đây là lý do tại sao tôi thích câu trả lời này. –

63

trả lời cho điều này là: vô hiệu hóa quy tắc lint trong build.gradle bạn

android { 
    lintOptions { 
    disable "ResourceType" 
    } 
} 

Edit: Điều này có thể xảy ra đặc biệt là khi di chuyển từ Eclipse để Android Studio.

0

tôi có một vấn đề tương tự. với phương thức getString. Hóa ra tôi đã cố gắng để có được giá trị chuỗi không từ strings.xml nhưng từ ids.xml, bởi vì tôi đã nhận được nó với getString (R.id.MYSTRING), khi nó nên được R.string.MYSTRING

2

Có lẽ giải pháp tốt hơn là tạm thời vô hiệu hóa lỗi/cảnh báo bằng cách sử dụng @SuppressLint("ResourceType") ngay trước định nghĩa phương thức.

+0

Chào mừng bạn đến với StackOverflow! Kiểm tra [answer] để biết các mẹo đưa ra câu trả lời hay cho các câu hỏi ở đây. Cụ thể là có nhiều cách để định dạng mã để chúng hiển thị dưới dạng mã thay vì văn bản thuần túy. Ngoài ra, nói chung tốt nhất là tập trung vào các câu hỏi mới hơn mà không có câu trả lời được chấp nhận tốt. – Kateract

0

điều này là dành cho một số Chế độ xem theo cùng id và u cố gắng thay đổi một số thuộc tính cho một trong số chúng. Khi cố gắng để tạo ra apk android tìm thấy một số confilict về resours id

Để giải quyết mà

tốt hơn cách tìm mã và cố gắng giải quyết điều đó từ một cách khác để mục đích của bạn

Goodluck

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