https://github.com/uber/NullAway
project gradle下
3.0以前,repositories标签下
添加maven { url 'https://maven.google.com' }
3.0以后添加google()
同时repositories标签下还要添加
maven {url "https://plugins.gradle.org/m2/"}
plugins {
id "net.ltgt.errorprone" version "0.0.13"
}
dependencies {
classpath deps.build.gradlePlugins.android//这个可能不用
classpath "net.ltgt.gradle:gradle-errorprone-plugin:0.0.13"
}
module gradle
apply plugin: 'com.android.application'
apply plugin: 'net.ltgt.errorprone'
android下
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
lintOptions {
abortOnError false
}
dependencies下
errorprone "com.google.errorprone:error_prone_core:2.1.3"
annotationProcessor "com.uber.nullaway:nullaway:0.4.6"
tasks.withType(JavaCompile) {
// remove the if condition if you want to run NullAway on test code
if (!name.toLowerCase().contains("test")) {
options.compilerArgs += ["-Xep:NullAway:ERROR", "-XepOpt:NullAway:AnnotatedPackages=com.uber"]
}
}
红字的地方,是你要检索NPE的包,这是你需要修改的地方。
在sync now应用gardle后,你需要在terminal中
./gradlew build
这样你所有NPE的地方就会显示出来了
对于你可能有空指针的地方,希望你能用@Nullable、@NotNull、if语句进行修复