FlutterプロジェクトでGradlePluginのバージョンを上げたらビルド時のapk出力パスが変わった
起きたこと
とあるFlutterパッケージを入れるためにGradlePluginのバージョンを上げる必要があり、バージョンを7.1.1
まで上げた。
classpath 'com.android.tools.build:gradle:7.1.1'
そうするとFlutterをビルドしたときのapkファイルの出力先が変わってしまった。
以前はプロジェクト直下のbuild
ディレクトリに出力されていたが、バージョン変更後はandroid/app/build
ディレクリに出力されるようになってしまった。
// 以前
<project>/build/outputs/apk/<BuildMode>/<BuildFlavor>/app-<BuildMode>-<BuildFlavor>.apk
// バージョン変更後
<project>/android/app/build/outputs/apk/<BuildMode>/<BuildFlavor>/app-<BuildMode>-<BuildFlavor>.apk
解決方法
android/build.gradle
の以下の箇所を修正することで、以前の出力パスに戻すことができた。
// 修正前
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
project.evaluationDependsOn(':app')
}
// 修正後
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
}
subprojects
ブロックはサブプロジェクトの設定を記述するものらしいが、どうしてそれを分けることで出力先が変わるのかまだ分かっていない。
分かり次第追記しようと思う。もしご存じの方がいらっしゃれば教えていただきたい。
参考
ちなみに以下のstackoverflowとplus_plugins
レポジトリのイシューで上記の解決方法が紹介されていた。