2012-06-13 29 views
13

Tôi đã có bộ chọn sau quy định tại button_selector.xmlStrange Lint Cảnh báo - văn bản bất ngờ tìm thấy trong file layout: ""

<?xml version="1.0" encoding="utf-8"?> 
    <selector xmlns:android="http://schemas.android.com/apk/res/android"> 
     <item android:state_pressed="true" 
      android:state_enabled="true" 
      android:drawable="@drawable/button_settlement_background_pressed" /> 
     <item android:state_enabled="true" 
      android:drawable="@drawable/button_settlement_background_normal" /> 
     <item android:state_enabled="false" 
      android:drawable="@drawable/button_settlement_background_disabled" /> 
     </selector> 

Khi tôi chạy lint tôi nhận được cảnh báo sau đây: văn bản bất ngờ tìm thấy trong cách bố trí tập tin: "". Nó nói rằng nó đang xảy ra ở dòng 4 trong "drawable". Tất cả các drawables tham chiếu tồn tại trong/res/drawable.

Có ai biết điều gì có thể gây ra điều này không? Tôi có thể bỏ qua cảnh báo nhưng tôi muốn sửa chữa nó nếu có thể.

Ngoài ra, tôi nhận được cảnh báo cho các chuỗi và biểu tượng không được sử dụng khi chúng chỉ được tham chiếu trong AndroidManifest.xml. Có cách nào để khắc phục những thay vì bỏ qua chúng không?

+0

Trong khi tôi đang ở đó ... Các dự án của tôi không có thư mục mật độ cho xhdpi vì vậy tôi đã thêm vào đó như một cái gì đó để bỏ qua trên mỗi dự án. Tuy nhiên, nó vẫn báo cáo lỗi khi các dự án được tham chiếu tồn tại. Ví dụ, tôi đã có một dự án gọi là Thư viện có quy tắc được đặt trong lint.xml.Tôi đã có một dự án khác được gọi là Dịch vụ có quy tắc cũng được thiết lập. Dịch vụ tham khảo Thư viện như một thư viện android. Khi tôi chạy Lint trên Thư viện, nó không báo cáo lỗi, điều này tốt. Khi tôi chạy trên Dịch vụ, nó không báo cáo lỗi cho chính nó nhưng báo cáo nó cho Thư viện. : - | –

Trả lời

13

Có lẽ có một nhân vật vô hình ở đâu đó trong không gian màu trắng. Tôi muốn thử tạo lại xml từ đầu (không sử dụng sao chép và dán, mà sẽ chỉ sao chép vấn đề, nếu đó là những gì đang xảy ra). Tôi cũng sẽ làm sạch và xây dựng lại dự án.

Theo như cảnh báo tài nguyên chưa sử dụng, tôi không nghĩ có cách nào để kiểm soát điều này. Vấn đề tích cực sai là cực kỳ tồi tệ hơn cho các dự án thư viện. Android lint là một công cụ khá mới và (theo ý kiến ​​của tôi) vẫn có rất nhiều cạnh thô.

+0

Đó là nó. Tôi sẽ trải qua 20 bộ chọn khác nhau và tái tạo chúng. Yay! :) –

+0

@ James - nghe có vẻ thú vị. :) –

+2

Tôi sắp sử dụng cùng một giải pháp cho dự án của mình mà tôi đã bắt đầu hôm qua vì hôm qua tôi đã có cùng một vấn đề. Khi tôi tải dự án ngay hôm nay (sau khi đã khởi động lại mọi thứ), tôi thực sự đã thấy một ký tự ngoặc kép trong tệp không có ở đó hôm qua! Dường như IDE đã nhầm lẫn về những gì các tập tin thực sự chứa hoặc một cái gì đó. Rất lạ. – BlueMonkMN

20

Sử dụng Project>Clean.

Đã khắc phục sự cố đó trong trường hợp của tôi.

+0

Điều này cũng phù hợp với tôi. Sau khi làm sạch, các nhân vật lạ được nhìn thấy, và tôi gỡ bỏ nó. – Cloud9999Strife

13

Bạn cũng có thể định dạng tệp xml (CTRL + SHIFT + F). Các ký tự thừa sẽ được hiển thị.

1

Tôi thấy rằng nếu tôi đóng tệp tôi đã có ký tự ẩn, sau đó mở lại cùng một tệp. Ký tự này không còn bị ẩn nữa (và thường là ngay sau />, ví dụ /> ").

2

thường , điều này sẽ xảy ra khi bạn chèn một cái gì đó như" android: id = "không có dòng mới và sử dụng tự động của nhật thực hoàn thành, như thế này:

<LinearLayout 
      android:id= > 
        ^

đây loại nhập, mã sẽ xuất hiện để được như thế này:

<LinearLayout 
       android:id="@+id/ 

nhân vật '>' đã bị xóa và '"' trở thành vô hình.

sử dụng ctrl+shift+f để định dạng tệp để tìm các ký tự bị ẩn.

-1

Trong tệp XML, thẻ chứa thuộc tính. xem xét các dòng: (cuối cùng ">" không nên có mặt ở đó) ...

<selector xmlns:android="http://schemas.android.com/apk/res/android">

Hãy chắc chắn rằng thẻ trên dòng đầu tiên không chứa ">".

Replace trên mã với: <selector xmlns:android="http://schemas.android.com/apk/res/android" ... </selector>

Bây giờ các yếu tố khác đang được tag selector. Tôi hi vọng cái này giúp được.

+0

Điều đó không đúng. nếu "<" không có mọi thứ sau khi nó sẽ được phân tích cú pháp thành thuộc tính. Vì chúng là các thẻ lồng nhau nên tệp sẽ không biên dịch được. –

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