2014-09-05 137 views
7

我正在關注此教程(http://tools.android.com/tips/lint-custom-rules)頁面。 我停留在步:添加自定義Lint規則

lint --show MyId 

我收到以下錯誤信息,任何想法?

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

你看上去編譯對API的一個版本,並且對另一運行。請參閱創建問題部分中有關使用工具22的註釋。 – brindy 2014-09-08 08:40:30

+0

我使用lint-api-23.0.2.jar編譯了jar,並且還使用lint --version檢查了我的teerminal時,我的lint版本是23.0.2。仍然得到相同的錯誤。 – guydemossyrock 2014-09-08 12:08:36

+0

你可以發佈你的代碼嗎?我猜你正在調用#create的7參數版本,因爲那是它找不到的 - 但是Tools 22+版本需要8個參數,這意味着在構建時你的類路徑可能有錯誤的地方。 – brindy 2014-09-08 12:19:05

回答

1

我也一樣。

  1. 我正在使用mac和AndroidStudio 0.8.6。
  2. 我在Eclipse中使用lint-api.jar在 「/ Applications/Android Studio.app/sdk/tools/lib」中導出了「customrule.jar」。
  3. 該規則的Eclise項目使用lint-api.jar進行編譯。
  4. 但是,當我運行「lint --show MyId」時,我得到了同樣的錯誤。

所以我下載了adt-bundle,我嘗試了「lint-api.jar」,並且錯誤消失了。

我覺得「棉絨api.jar文件」列入AndroidStudio什麼不對......

+0

嗯,我會盡快嘗試。 – guydemossyrock 2014-10-24 11:19:39

+0

而且,這是暗示問題的解決方案? – iFoukis 2014-10-29 09:35:36

+0

使用最新的'lint-api.jar'例如從'android-sdk \ tools \ lib'解決了這個問題。 這個特殊的異常是由於前段時間的API改變引起的。它在http://tools.android.com/tips/lint-custom-rules中的「創建問題」部分進行了描述。 – riwnodennyk 2014-11-02 00:25:58