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

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

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

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

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

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キャッシュの不整合が原因で発生することが多いです。

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

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

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

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

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

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

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

cd android && ./gradlew clean && ./gradlew --stop && rm -rf ~/.gradle/caches/ && cd .. && rm -rf android/.gradle/ && fvm flutter clean && fvm flutter pub get
Clipyのスニペット

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

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

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

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

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

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

% brew install openjdk@17

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

(ログ取るの忘れてました…)

多分こんな感じの

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

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

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

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

% chmod +x android/gradlew

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

Anycloudではプロダクト開発の支援を行っています

プロダクト開発をお考えの方はぜひAnycloudにご相談ください。

まずは相談する

記事を書いた人

Matsuura

エンジニア

Matsuura

Twitter

Anycloudでエンジニアしてます!主にFlutterやWebフロントをやっていて、最近はバックエンドやインフラに挑戦・苦戦中。