🤖
Android 'Installed Build Tools revision 31.0.0 is corrupted'の原因と対策について
Android 12対応でAndroid Build Tools 31.0.0をインストールしたとき、ビルド時に表題のエラーとなりました。本エラーは旧DexコンパイラのDXが削除され、D8のみが付属されるようになったためで、Android Gradle Plugin(AGP)のバージョンを7.0.0以上にすることで解消できます。
22.05.29: 元記事から、一部加筆・訂正のうえ記載しています。
発生環境
- MacOS Monterey
- Android Studio Arctic Fox 2020.3.1.24 arm版
- Gradle 6.7.1
- Android Gradle Plugin(AGP) 4.2.1
原因
Android Build Tools 31.0.0より、旧DexコンパイラのDXが削除され、D8のみが付属されるようになっています(下図)[1]。しかしながら、AGP ver.4.x系ではDXの削除がケアされていません。そのため、ビルド時にエラーとなります。
Build Tools 30.0.2 の場合
Build Tools 31.0.0 の場合
対策方法
以下、2種類があります。開発プロジェクトでの制約がない限り、1番目の対策が望ましいです。
- AGPを7.0.0以上にアップデートする。合わせて、Gradleのバージョンも7.0.2以上にアップデートする[2]
- Android Build Toolsを30.x.xで止めておく。しかしながら、APIレベル31(=Android 12)以上に対応できないので非推奨です。
AGPの7.0.0以上へのバージョンアップに伴って、以下の点に留意してください。詳細はGoogle Developers Japan: AGP 7.0: Android Gradle プラグインリリースにて確認できます。
- Javaのバージョンが11以上である必要があります。
- 一部APIが削除・変更となっています。
-
2020年よりDXがdeprecatedになっており、2021年2月よりDXが順次削除される旨が通知されていました。恐らく、Android Build Tools 30.x.xでDXを削除すると影響が大きいため、31.0.0で削除したと推測されます。 ↩︎
-
Android Gradle プラグインのリリースノート | Android デベロッパー | Android Developers ↩︎
Discussion