# 【Flutter】Androidビルド時のキャッシュ削除方法

> FlutterでAndroidビルド時におきた依存関係やGradleキャッシュの不整合エラーの解決策であるキャッシュ削除方法を紹介。

- 公開日: 2024-11-05
- 著者: Matsu
- タグ: Flutter
- URL: https://tech.anycloud.co.jp/articles/android-build-cache-delete

---

## gradleファイル変更によるキャッシュ問題

FlutterのAndroid立ち上げがうまくいかず、gradleなどのファイルをいじっていると、キャッシュの問題で以下のようなエラーを吐いていたので解決方法です。

※エラー自体はAgoraパッケージの影響もあるのですが、さっきまで立ち上げできていたけど、gradleファイルの変更とか試しているうちに、元のコードでも起動できなくなったので、キャッシュの影響と判断しています。

```shell
Running Gradle task 'assembleRelease'...                        
You are applying Flutter's main Gradle plugin imperatively using the apply script method, which is deprecated and will be removed in a future release. Migrate to applying Gradle plugins with the declarative plugins block: <https://flutter.dev/to/flutter-gradle-plugin-apply>

Reading env from: .env

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':iris_method_channel:generateReleaseRFile'.
> A failure occurred while executing com.android.build.gradle.internal.res.GenerateLibraryRFileTask$GenerateLibRFileRunnable
   > /Users/path/.gradle/caches/transforms-3/0000000000000000000/transformed/androidx.fragment-r.txt

* 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 7s
Running Gradle task 'assembleRelease'...                            8.0s
Gradle task assembleRelease failed with exit code 1
```

## Gradleキャッシュをクリアしてビルドする

このエラーは、Androidビルド時の依存関係管理やGradleキャッシュの不整合が原因で発生することが多いです。

以下のコマンドでキャッシュをクリアしましょう。

自分はこれで起動できました。

```shell
% cd android
% ./gradlew clean
% ./gradlew --stop
% rm -rf ~/.gradle/caches/
% cd .. && rm -rf android/.gradle/
% fvm flutter clean
% fvm flutter pub get
```

### 補足：Clipyのスニペットに登録すれば便利

上記をまとめて実行するコマンドも書いておきます。

割と自分はこういうのをClipyなどのコピペ履歴のツールのスニペットとして登録しています。

「コマンドなんだっけ・・・」ということがなくなります。

<div class="link-card-wrap"><a class="link-card" href="https://clipy.softonic.jp/mac" target="_blank" rel="noopener noreferrer"><span class="link-card-body"><span class="link-card-title">https://clipy.softonic.jp/mac</span><span class="link-card-meta"><span class="link-card-domain">clipy.softonic.jp</span></span></span></a></div>

```shell
cd android && ./gradlew clean && ./gradlew --stop && rm -rf ~/.gradle/caches/ && cd .. && rm -rf android/.gradle/ && fvm flutter clean && fvm flutter pub get
```

<figure><img src="./image-001.webp" alt="Clipyのスニペット" width="1504" height="922"></figure>

## ./gradlewコマンドが実行できない場合

### Javaがインストールされているか確認

以下のコマンドを実行して、Javaがインストールされているか確認します。

```shell
% java -version
java version "17.0.6" 2023-01-17 LTS
```

### Javaがない場合はインストール

Homebrewがインストールされている場合、以下のコマンドでJavaをインストールします。

```shell
% brew install openjdk@17
```

インストール後、実行結果に書かれているコマンドの実行とPathを通す作業があったと思います。

（ログ取るの忘れてました…）

多分こんな感じの

```shell
% sudo ln -sfn /usr/local/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
```

再度、Javaがインストールされているか確認してバージョン表示されたらOKです。

### gradlewファイルが存在するが実行できない場合

`gradlew`ファイルが存在するが実行できない場合は、実行権限を付与します。

```shell
% chmod +x android/gradlew
```

これで実行できるようになるはずです。
