Название подводит итог очень хорошо.make Gradle build fail в режиме деблокирования с кодом, который не учитывает аннотации @Intdef
Я использую аннотацию @Intdef для того, чтобы определить, какие константы можно использовать в качестве параметров или возвращаемых значений в некоторых методах, например, так:
@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 Студия показывает это как ошибку, которая является большим, но я также хотел бы сделать Gradle построить проверить это правило ворса для версии релиза (я не хочу, чтобы удлинить отладки строят пух проверка, хотя) ,
Итак, я добавил это к моему build.gradle:
Однако Gradle компилирует этот проект без обнаружения этой ошибки.
Я ничего не теряю?
я на версии 2.0 Gradle плагин, и это до сих пор не работает (?) lintOptions { abortOnError правда фатальным 'ResourceType' } –