标题总结得很好。
我正在使用@Intdef注释来定义哪些常量可以用作params或在某些方法中返回值,如下所示:
@Retention(RetentionPolicy.SOURCE)
@IntDef({NAVIGATION_MODE_STANDARD, NAVIGATION_MODE_LIST, NAVIGATION_MODE_TABS})
public @interface NavigationMode {}
public static final int NAVIGATION_MODE_STANDARD = 0;
public static final int NAVIGATION_MODE_LIST = 1;
public static final int NAVIGATION_MODE_TABS = 2;
@NavigationMode
public int getNavigationMode() {
return NAVIGATION_MODE_LIST;
}
public void setNavigationMode(@NavigationMode int mode) {
mNavigationMode = mode;
}
作为测试,我添加了这个电话:
setNavigationMode(5);
Android Studio将其显示为错误,这很好,但我还想让Gradle构建检查此发布版本的lint规则(我不想通过lint检查来延长调试版本)。
所以,我已经将它添加到我的build.gradle:
lintOptions {
abortOnError true
checkReleaseBuilds true
fatal 'NewApi', 'InlineApi', 'ResourceType'
}
但是,Gradle编译此项目时未检测到此错误 我错过了什么吗?
答案 0 :(得分:3)
使用android gradle插件的1.3.0-beta1版本,我们现在对IntDef注释进行了Lint检查。
答案 1 :(得分:2)
在comment on this Google+ post Tor Norbye解释说,ResourceType
检查是建立在IntelliJ之上的,目前不适用于lint。它可能在将来。