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
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,...)?