2014-09-05 12 views
7

śledzę tutorial na tej stronie (http://tools.android.com/tips/lint-custom-rules). siedzę na etapie:Dodawanie własnych reguł Lint

lint --show MyId 

otrzymuję następujący komunikat o błędzie, jakieś pomysły?

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

Wygląda jakbyś kompilacji przeciwko jednej wersji API i działa przeciw drugiemu. Patrz uwaga w kwestii tworzenia sekcji na temat korzystania z narzędzia 22. – brindy

+0

Skompilowałem słoik z niestrzępiącą API-23.0.2.jar a także moją wersję 23.0.2 niestrzępiącą kiedy sprawdzić w moim teerminal przez strzępiącą --version. Nadal pojawia się ten sam błąd. – guydemossyrock

+0

Czy możesz opublikować swój kod? Zgaduję, że nazywasz 7 argumentową wersję #create, ponieważ to ta, której nie może znaleźć - ale wersja Tools 22+ ma 8 argumentów, co oznacza, że ​​ścieżka klasy w czasie kompilacji może mieć coś niepoprawnego. – brindy

Odpowiedz

1

Ja też byłem taki sam.

  1. Używam mac i AndroidStudio 0.8.6.
  2. I eksportowane "customrule.jar" w Eclipse przy użyciu niestrzępiącą api.jar w "/ Applications/Android Studio.app/sdk/tools/lib".
  3. projekt Eclise dla reguły jest kompilowany dobrze z niestrzępiącą api.jar.
  4. Ale gdy uruchamiam „Lint --show myid”, mam ten sam błąd.

Więc pobrałem pakiet adt i próbowałem z "lint-api.jar" w nim i błąd zniknął.

myślę „szarpie-api.jar” zawarte w AndroidStudio jest coś nie tak ...

+0

Hmm, spróbuję to jak najszybciej. – guydemossyrock

+0

I czy ta wskazówka była rozwiązaniem problemu? – iFoukis

+0

Używanie najnowszego 'lint-api.jar' np. z 'android-sdk \ tools \ lib' rozwiązało problem także dla mnie. Ten szczególny wyjątek jest spowodowany zmianą interfejsu API jakiś czas temu. Jest to opisane na http://tools.android.com/tips/lint-custom-rules w sekcji "Utwórz problem". – riwnodennyk

Powiązane problemy