2018年8月11日土曜日

:app:lintVitalRelease FAILED

API Level 28がリリースされ、PlayStore上でAPI制限が上げられてきたのでAPIレベルを変えてリコンパイルする作業でエラーが出てきました。

この手のエラーはデバッグ用のビルドではエラーが出ず、リリース用のビルドでエラーが発生しますね…今回もリリースビルドでエラーが出てしまい、クリーンしたり、toolVersionを最新のものにしたり色々してみましたが変化しませんでした。

:app:lintVitalRelease FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:lintVitalRelease'.
> Could not resolve all files for configuration ':app:lintClassPath'.
   > Could not find com.android.tools.lint:lint-gradle:26.1.4.
     Searched in the following locations:
         file:/C:/Android/SDK/extras/m2repository/com/android/tools/lint/lint-gradle/26.1.4/lint-gradle-26.1.4.pom
         file:/C:/Android/SDK/extras/m2repository/com/android/tools/lint/lint-gradle/26.1.4/lint-gradle-26.1.4.jar
         file:/C:/Android/SDK/extras/google/m2repository/com/android/tools/lint/lint-gradle/26.1.4/lint-gradle-26.1.4.pom
         file:/C:/Android/SDK/extras/google/m2repository/com/android/tools/lint/lint-gradle/26.1.4/lint-gradle-26.1.4.jar
         file:/C:/Android/SDK/extras/android/m2repository/com/android/tools/lint/lint-gradle/26.1.4/lint-gradle-26.1.4.pom
         file:/C:/Android/SDK/extras/android/m2repository/com/android/tools/lint/lint-gradle/26.1.4/lint-gradle-26.1.4.jar
         https://jcenter.bintray.com/com/android/tools/lint/lint-gradle/26.1.4/lint-gradle-26.1.4.pom
         https://jcenter.bintray.com/com/android/tools/lint/lint-gradle/26.1.4/lint-gradle-26.1.4.jar
     Required by:
         project :app

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 14s
17 actionable tasks: 1 executed, 16 up-to-date

メッセージ中の「lint-gradle:26.1.4」という部分がtoolVersionを変更しても変化しないというのが気になったのですが、正直八方塞がりになってしましました。

こんな時に一番役立つのはやはりAPI Levelを設定したうえで新規プロジェクトを作成して比較するということ。バグではない限り大概これで足りない記述や変更された記述を転記してやれば正常にコンパイルできるようになります。

確認したところ、プロジェクトレベルのbuild.gradle内に
allprojects {
    repositories {
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
赤い文字の部分が追加されていました。
今までエラーが出ていたプロジェクトに追記したところエラーが出なくなりました。

直接のビルドエラーの原因はgradleのバージョンアップでリポジトリを強制追加しない感じになったのでしょうかね。