Исключительная ошибка и исключение недопустимого доступа NullAway - PullRequest
0 голосов
/ 07 сентября 2018

Я включил в свое приложение ноль и ошибки, и добавил следующее в мой build.gradle верхнего уровня

buildscript {
    repositories {
        google()
        maven { url 'https://plugins.gradle.org/m2/' }
        ...
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'
        classpath "net.ltgt.gradle:gradle-errorprone-plugin:0.0.16"
    }
}

subprojects {
    apply from: rootProject.file("gradle/nullaway.gradle")
}
...

тогда в файле nullaway.gradle у меня есть

buildscript {
    repositories {
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
}

apply plugin: 'net.ltgt.errorprone'

if (this.name == 'javalib1' || this.name == 'javalib2') {
    apply plugin: 'java-library'

    dependencies {
        annotationProcessor deps.thirdparty.nullaway

        errorprone deps.thirdparty.error_prone
    }
} else {
    if (this.name == 'app') {
        apply plugin: 'com.android.application'
    } else {
        apply plugin: 'com.android.library'
    }

    dependencies {
        annotationProcessor deps.thirdparty.nullaway

        errorprone deps.thirdparty.error_prone
    }
}

tasks.withType(JavaCompile) {
    if (!name.toLowerCase().contains("test")) {
        options.compilerArgs += [
                "-Xep:NullAway:WARN",
                "-XepOpt:NullAway:AnnotatedPackages=com.mypackage",
                "-Xep:RestrictTo:WARN",
                "-XepExcludedPaths:.*/build/generated/.*"]
    }
}

С этой настройкой, когда я пытаюсь создать свое приложение, я получаю исключение

Caused by: java.lang.IllegalAccessError: tried to access class com.google.common.graph.BaseGraph from class com.google.common.graph.Traverser
    at com.google.common.graph.Traverser.forTree(Traverser.java:134)
    at dagger.internal.codegen.ValidationReport.<clinit>(ValidationReport.java:63)
    at dagger.internal.codegen.InjectValidator.validateMembersInjectionType(InjectValidator.java:257)
    at dagger.internal.codegen.InjectBindingRegistryImpl.tryRegisterMembersInjectedType(InjectBindingRegistryImpl.java:269)
    at dagger.internal.codegen.InjectBindingRegistryImpl.tryRegisterMembersInjectedType(InjectBindingRegistryImpl.java:253)
    at dagger.internal.codegen.InjectProcessingStep$1.visitVariableAsField(InjectProcessingStep.java:67)
    at dagger.internal.codegen.InjectProcessingStep$1.visitVariableAsField(InjectProcessingStep.java:57)
    at com.sun.tools.javac.code.Symbol$VarSymbol.accept(Symbol.java:1550)
    at dagger.internal.codegen.InjectProcessingStep.process(InjectProcessingStep.java:56)
    at dagger.shaded.auto.common.BasicAnnotationProcessor.process(BasicAnnotationProcessor.java:330)
    at dagger.shaded.auto.common.BasicAnnotationProcessor.process(BasicAnnotationProcessor.java:181)

Я проверяю заметки и использую кинжал версии 2.16, и, как вы можете видеть, у меня есть исключение для build/generated файлов. Чего мне не хватает?

...