Gradle кинжал lint: игнорировать пакет
Я создал проект Android, используя Gradle. Я добавил библиотеку Dagger:
dependencies {
compile 'com.squareup.dagger:dagger-compiler:1.2.1'
compile 'com.squareup.dagger:dagger:1.2.1'
}
После попытки скомпилировать проект я получаю ошибку сборки из-за исключений lint:
InvalidPackage: Package not included in Android
../../../../../../.gradle/caches/modules-2/files-2.1/com.squareup.dagger/dagger-compiler/1.2.1/c8bf6c2fda9b27f4d44a2aa4280df525a1408771/dagger-compiler -1.2.1.jar: неверная ссылка на пакет в библиотеке; не входит в Android: javax.annotation.processing. Ссылка на dagger.internal.codegen.GraphAnalysisErrorHandler.
../../../../../../.gradle/caches/modules-2/files-2.1/com.squareup.dagger/dagger-compiler/1.2.1/c8bf6c2fda9b27f4d44a2aa4280df525a1408771/dagger-compiler -1.2.1.jar: неверная ссылка на пакет в библиотеке; не входит в Android: javax.lang.model.type. Ссылка на dagger.internal.codegen.GeneratorKeys.
../../../../../../.gradle/caches/modules-2/files-2.1/com.squareup.dagger/dagger-compiler/1.2.1/c8bf6c2fda9b27f4d44a2aa4280df525a1408771/dagger-compiler -1.2.1.jar: неверная ссылка на пакет в библиотеке; не входит в Android: javax.lang.model.util. Ссылка на dagger.internal.codegen.GraphAnalysisErrorHandler.
../../../../../../.gradle/caches/modules-2/files-2.1/com.squareup/javawriter/2.3.0/4b290e394ea3109be5c0b7f08ff75de089125122/javawriter-2.3.0.jar: Неверная ссылка на пакет в библиотеке; не входит в Android: javax.lang.model.element. Ссылка на com.squareup.javawriter.JavaWriter.
Итак, я должен либо исправить, либо заставить lint игнорировать пакеты Dagger. Я настроил lint.xml
но не могу найти способ игнорировать:
<issue id="InvalidPackage">
<ignore ...INSERT DECLARATION TO IGNORE DAGGER PACKAGE... />
</issue>
Благодарю.
Ответы
Ответ 1
Нашел ответ здесь:
https://android.googlesource.com/platform/tools/base/+/e6a5b9c7c1bca4da402de442315b5ff1ada819c7
добавление в build.gradle в разделе android, lintOptions решила проблему для меня:
android {
...
lintOptions {
disable 'InvalidPackage'
}
}
добавление того же оператора ignore в lint.xml не сработало для меня.
Ответ 2
FYI, начиная с версии 0.10.1 плагина Android Gradle это больше не понадобится; lint автоматически игнорирует эти проблемы, обнаруженные в кинжале:
https://android-review.googlesource.com/#/c/93140/