Wood lint: ClassNotFound: com / android / tools / lint / detector / api / Detector $ JavaPsiScanner

Timber (V 4.5.0) lint checks work only through Gradle (but not through the command lintand also not in Android Studio version 2.3 Beta2).

Summary

When I run lintdirectly on the command line, I get an error.

lint --show TimberArgCount

Could not load custom rule jar file /home/tmtron/.android/lint/timber-lint.jar
java.lang.NoClassDefFoundError: com/android/tools/lint/detector/api/Detector$JavaPsiScanner

but it works when I call it through gradle:

./gradlew lint

MainActivity.java:15: Error: Wrong argument count, 
format string %s.%s requires 2 but format call supplies 1 [TimberArgCount]
        Timber.d("%s.%s", "onCreate");
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Detailed description

I made a small example project on GitHub: TimberLintTest

I basically did this:

  • created a simple Android project in Android Studio
  • Added by Timber
  • activated stdout output for lint errors android { lintOptions { textReport true textOutput "stdout" } }

In MainActivity, I use a simple logical operator as follows:

Timber.d("%s.%s", "onCreate");

lint Gradle -wrapper , - :

MainActivity.java:15: Error: Wrong argument count, 
format string %s.%s requires 2 but format call supplies 1 [TimberArgCount]
        Timber.d("%s.%s", "onCreate");
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Android Studio, lint .
, lint.jar ~/.android/lint. lint.jar( timber-4.5.0) timber-lint.jar, :

~/.android/lint/timber-lint.jar

, , JavaPsiScanner .

Timber, lint-api-25.0.2, Detector . SDK- (Android/Sdk/tools/lib/lint-api.jar) ( , , lint Android Studio).

, . , .
, lint-api.jar Android?

sdk, , Android SDK Tools - 25.2.5 ( ). lint-api.jar ( SDK, SDK,...)?

+4
2

gradle, lint . , Build - Make Project Android Studio, .

Gradle SO-.

0

Android Gradle 3.0.0

0

Source: https://habr.com/ru/post/1667012/


All Articles