🤖

Android 'Installed Build Tools revision 31.0.0 is corrupted'の原因と対策について

2022/05/29に公開

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 30.0.2

Build Tools 31.0.0 の場合

Build Tools 31.0.0

対策方法

以下、2種類があります。開発プロジェクトでの制約がない限り、1番目の対策が望ましいです。

  1. AGPを7.0.0以上にアップデートする。合わせて、Gradleのバージョンも7.0.2以上にアップデートする[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が削除・変更となっています。
脚注
  1. 2020年よりDXがdeprecatedになっており、2021年2月よりDXが順次削除される旨が通知されていました。恐らく、Android Build Tools 30.x.xでDXを削除すると影響が大きいため、31.0.0で削除したと推測されます。 ↩︎

  2. Android Gradle プラグインのリリースノート | Android デベロッパー | Android Developers ↩︎

Discussion