2014-09-05 15 views
7

Tôi đang làm theo hướng dẫn trên trang này (http://tools.android.com/tips/lint-custom-rules). Tôi bị kẹt ở bước:Thêm Quy tắc Lint Tuỳ chỉnh

lint --show MyId 

Tôi nhận được thông báo lỗi sau, có ý tưởng nào không?

Could not load custom rule jar file /Users/me/.android/lint/CustomLintRule.jar java.lang.NoSuchMethodError: com.android.tools.lint.detector.api.Issue.create(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/android/tools/lint/detector/api/Category;ILcom/android/tools/lint/detector/api/Severity;Ljava/lang/Class;Ljava/util/EnumSet;)Lcom/android/tools/lint/detector/api/Issue; at googleio.demo.MyDetector.(MyDetector.java:16) at googleio.demo.MyIssueRegistry.getIssues(MyIssueRegistry.java:15) at com.android.tools.lint.client.api.JarFileIssueRegistry.(JarFileIssueRegistry.java:93) at com.android.tools.lint.client.api.JarFileIssueRegistry.get(JarFileIssueRegistry.java:70) at com.android.tools.lint.client.api.LintClient.addCustomLintRules(LintClient.java:911) at com.android.tools.lint.Main.getGlobalRegistry(Main.java:642) at com.android.tools.lint.Main.run(Main.java:204) at com.android.tools.lint.Main.main(Main.java:113) Invalid id or category "MyId".

+0

Có vẻ như bạn đang biên dịch dựa trên một phiên bản API và đang chạy với một phiên bản khác. Xem lưu ý trong phần tạo vấn đề về cách sử dụng Công cụ 22. – brindy

+0

Tôi đã biên dịch jar bằng lint-api-23.0.2.jar và cũng là phiên bản lint 23.0.2 của tôi khi tôi kiểm tra tại teerminal của tôi bằng lint --version. Vẫn nhận được cùng một lỗi. – guydemossyrock

+0

Bạn có thể đăng mã bạn đã có không? Tôi đoán bạn đang gọi phiên bản 7 đối số của #create vì đó là phiên bản không thể tìm thấy - nhưng phiên bản Công cụ 22+ có 8 đối số, có nghĩa là classpath của bạn tại thời điểm xây dựng có thể có thứ gì đó không rõ ràng. – brindy

Trả lời

1

Tôi cũng vậy.

  1. Tôi đang sử dụng mac và AndroidStudio 0.8.6.
  2. Tôi đã xuất "customrule.jar" trong Eclipse bằng cách sử dụng lint-api.jar trong "/ Applications/Android Studio.app/sdk/tools/lib".
  3. Dự án Eclise cho quy tắc được biên dịch tốt với lint-api.jar.
  4. Nhưng, khi tôi chạy "lint --show MyId", tôi gặp lỗi tương tự.

Vì vậy, tôi đã tải xuống gói quảng cáo và tôi đã thử với "lint-api.jar" trong đó và lỗi đã biến mất.

Tôi nghĩ rằng "lint-api.jar" được bao gồm trong AndroidStudio là điều gì đó sai ...

+0

Hmm, tôi sẽ thử điều đó càng sớm càng tốt. – guydemossyrock

+0

Và, đây có phải là giải pháp cho vấn đề này không? – iFoukis

+0

Sử dụng 'lint-api.jar' mới nhất, ví dụ: từ 'android-sdk \ tools \ lib' cũng đã giải quyết vấn đề cho tôi. Ngoại lệ cụ thể này là do thay đổi API một thời gian trước đây. Nó được mô tả trên http://tools.android.com/tips/lint-custom-rules trong phần "Tạo vấn đề". – riwnodennyk

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