Skip to content

Android Studio ビルドツール 31.0.0 の破損エラー解決方法 ​

Android Studio でプロジェクトをビルドまたは実行する際に「Installed Build Tools revision 31.0.0 is corrupted. Remove and install again using the SDK Manager」というエラーが発生する問題の解決方法を解説します。

問題の原因 ​

このエラーの主な原因は、Android SDK Build Tools バージョン 31.0.0 に以下の2つのファイルが欠落していることです:

  • dx.bat (Windows) または dx (macOS/Linux)
  • dx.jar (すべてのOS)

これらのファイルはバージョン 31.0.0 では d8.bat/d8 と d8.jar という名前に変更されましたが、一部の古いビルドシステムが依然として元の名前を期待しているためエラーが発生します。

解決方法 ​

方法1: ファイル名の変更(推奨される一時的な解決策) ​

最も一般的な解決策は、欠落しているファイルの名前を変更することです。

bash
# ターミナルで実行
cd ~/Library/Android/sdk/build-tools/31.0.0
mv d8 dx
cd lib
mv d8.jar dx.jar
cmd
# コマンドプロンプトで実行(パスは環境に合わせて変更)
cd C:\Users\<ユーザー名>\AppData\Local\Android\Sdk\build-tools\31.0.0
ren d8.bat dx.bat
cd lib
ren d8.jar dx.jar

注意

AppDataフォルダは隠しフォルダのため、表示設定を変更する必要がある場合があります。

方法2: シンボリックリンクの作成 ​

ファイルを直接変更したくない場合、シンボリックリンクを作成する方法もあります。

bash
ln -s ~/Library/Android/sdk/build-tools/31.0.0/d8 ~/Library/Android/sdk/build-tools/31.0.0/dx
ln -s ~/Library/Android/sdk/build-tools/31.0.0/lib/d8.jar ~/Library/Android/sdk/build-tools/31.0.0/lib/dx.jar
cmd
# 管理者としてコマンドプロンプトを実行
mklink C:\Users\<ユーザー名>\AppData\Local\Android\Sdk\build-tools\31.0.0\dx.bat C:\Users\<ユーザー名>\AppData\Local\Android\Sdk\build-tools\31.0.0\d8.bat
mklink C:\Users\<ユーザー名>\AppData\Local\Android\Sdk\build-tools\31.0.0\lib\dx.jar C:\Users\<ユーザー名>\AppData\Local\Android\Sdk\build-tools\31.0.0\lib\d8.jar

方法3: Android Gradle Pluginのアップグレード(根本的な解決策) ​

より根本的な解決策は、Android Gradle Plugin (AGP) を最新バージョンにアップグレードすることです。新しいバージョンのAGPは d8 を直接使用するため、この問題が発生しません。

プロジェクトレベルの build.gradle:

groovy
buildscript {
    dependencies {
        classpath 'com.android.tools.build:gradle:7.0.2' // または最新バージョン
    }
}

gradle-wrapper.properties:

properties
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip

推奨

AGPをバージョン7.0.2以上にアップグレードすることで、この問題が永久的に解決されます。

方法4: ビルドツールバージョンのダウングレード ​

一時的な解決策として、ビルドツールのバージョンを30.0.3などにダウングレードすることも可能です。

モジュールレベルの build.gradle:

groovy
android {
    compileSdkVersion 31
    buildToolsVersion "30.0.3" // 31.0.0ではなく30.0.3を使用
    
    defaultConfig {
        targetSdkVersion 31
        // ...
    }
}

方法5: ビルドツールの再インストール ​

SDKマネージャーからビルドツールを再インストールすることも試せます:

  1. File → Settings → Appearance & Behavior → System Settings → Android SDK を開く
  2. SDK Tools タブを選択
  3. 「Show Package Details」にチェックを入れる
  4. 「Android SDK Build-Tools 31」のチェックを外して適用(アンインストール)
  5. 再度チェックを入れて適用(再インストール)

補足情報 ​

CI/CD環境での対応 ​

CircleCIなどのCI環境では、ビルド前に以下のスクリプトを追加することで問題を解決できます:

bash
# CircleCIの例
- run:
    name: Build Tools 31の修正
    command: |
      cd $ANDROID_HOME/build-tools/31.0.0 && mv d8 dx && cd lib && mv d8.jar dx.jar

Unityを使用している場合 ​

UnityでAndroidビルドを行う場合、以下の設定を試してみてください:

  1. File → Build Settings → Player Settings を開く
  2. Publishing Settings で「Custom Main Gradle Template」と「Custom Launcher Gradle Template」を有効にする
  3. 生成されたGradleテンプレートの buildToolsVersion '**BUILDTOOLS**' を buildToolsVersion '30.0.0' に変更

まとめ ​

「Installed Build Tools revision 31.0.0 is corrupted」エラーは、主にビルドツール31.0.0のファイル名変更に起因する問題です。一時的な解決策としてファイル名の変更やシンボリックリンクの作成が有効ですが、根本的にはAndroid Gradle Pluginのアップグレードを推奨します。

どの方法を選択する場合も、変更前にプロジェクトのバックアップを取ることをお勧めします。