그래들 빌드시 Lint(린트)로 인한 빌드 에러 피하기

이클립스나 인텔리제이에서는 Android Lint의 결과가 빌드에 영향을 미치지 않는다. 하지만, 안드로이드 스투디오에서 그레들 기반의 안드로이드 프로젝트를 사용하면, release 버전을 만들 때 Lint의 결과가 빌드를 중단할 수 있다.

예를 들면, res\values\strings.xml의 언어 문자열이 다국어 번역에서 일부 누락되었을 때 아래와 같은 메시지와 함께 빌드가 중단된다.

...
Error 69) Error: "server_url" is not translated in "ko" (Korean) [MissingTranslation]
Error 75) Error: "countries" is not translated in "ko" (Korean) [MissingTranslation]
...

실수로 번역이 누락된 것이라면, 번역을 하면 되지만 번역이 불필요한 경우에는  불편하다. 그 외의 Lint를 통한 검증 내용도 무시하고 일단 빌드를 하고 싶다면 아래와 같이 build.gradle에 추가해주면 된다.

lintOptions {
    checkReleaseBuilds false
}

release 빌드 시 필수인 Lint를 끄고 빌드할 수 있다. 하지만, 임시 방편일 뿐 Lint를 통해 분석한 결과를 꼭 수정하여, 더 안전한 앱을 만들자.

참조

안드로이드 스투디오에서 린트(Lint) 실행하기

린트(Lint)는 안드로이드에서 제공하는 정적 분석 툴로, 정확성, 보안, 퍼포먼스, 사용성, 접근성, 번역 등 안드로이드 프로젝트의 다방면을 분석해 준다.

안드로이드 스투디오에서 실행한다면 Project 뷰 > Alalysis > Inspect Code… 를 통해 실행할 수 있다. 안드로이드 스투디오의 code inspection은 안드로이드 린트(Lint)에서 제공하는 분석 결과 외에 오타나, XML 문법 등도 추가적으로 확인해준다.

community_edition_lint

항상 실행할 필요는 없을 것 같지만, 전반적으로 코드를 손 본 경우라면 한번 실행해주자!

참조

  • lint : https://developer.android.com/tools/help/lint.html
  • Code inspection : https://www.jetbrains.com/idea/webhelp/code-inspection.html