作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在使用 errorprone 时遇到问题和 nullaway在安卓工作室。看起来 nullaway 取决于 errorprone。这些是避免 NPE 的静态分析工具。 nullaway github 页面上关于如何在 android 中使用 nullaway 的文档很差而且不清楚。
我尝试转到 android studio 中的插件区域,我安装了容易出错的插件,然后将 java 编译器切换为容易出错的 javac,如下图所示:
然后我将以下代码放入 android studio 中,认为编译器会捕获潜在的 null:
private void processLog() {
log(null);
}
static void log(Object x) {
System.out.println(x.toString());
}
static void foo() {
log(null);
}
相反,什么也没发生。这是我放入 gradle 文件中的内容;
底层build.gradle:
dependencies {
annotationProcessor "com.uber.nullaway:nullaway:0.1.6"
}
顶级build.gradle 文件:
buildscript {
repositories {
jcenter()
maven { url 'https://maven.fabric.io/public' }
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
classpath 'com.google.gms:google-services:3.1.1'
classpath 'io.fabric.tools:gradle:1.24.+'
classpath "net.ltgt.gradle:gradle-errorprone-plugin:0.0.11"
classpath "net.ltgt.gradle:gradle-apt-plugin:0.11"
}
}
plugins {
id "net.ltgt.errorprone" version "0.0.13"
}
allprojects {
repositories {
jcenter()
mavenCentral()
maven { url "https://maven.google.com" }
maven { url "http://dl.bintray.com/pt-midtrans/maven" }
maven { url "https://jitpack.io" }
maven { url "https://plugins.gradle.org/m2/" }
}
}
subprojects {
project.configurations.all {
resolutionStrategy.eachDependency { details ->
if (details.requested.group == 'com.android.support'
&& !details.requested.name.contains('multidex')) {
details.useVersion "$supportlib_version"
}
}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
最佳答案
无需从android studio 安装易出错
插件。
如文档中所述,请按照以下两个步骤操作:
1) 在顶级构建文件中添加存储库 url 和类路径:
repositories {
// other repositories
maven { url "https://plugins.gradle.org/m2/" }
}
dependencies {
classpath "net.ltgt.gradle:gradle-errorprone-plugin:0.0.13"
}
2) 为 null-away 添加注释处理器并在模块级 gradle 文件中应用容易出错的插件(第二部分是你缺少的。你没有将插件应用到你的模块):
````
apply plugin: 'net.ltgt.errorprone'
dependencies {
annotationProcessor "com.uber.nullaway:nullaway:0.1.6"
}
```
关于android - 如何在android studio中安装Uber的nullaway静态分析工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46882864/
我是一名优秀的程序员,十分优秀!