Android

[Flutter]Flavorを使ったFlutterのAndroidアプリでビルドの時に、「ProductFlavor names cannot collide with BuildType names」とエラーが出てビルドができない時の対処法

flutter-android-flavor-build-error

Flavorを使ったFlutterのAndroidアプリでビルドの時に、「ProductFlavor names cannot collide with BuildType names」とエラーが出てビルドができない時の対処法

Flutterでモバイルアプリを実装していて、iOSでいうConfigurationごとの分岐処理をしようとした時に、iOSではビルドができたが、Androidのビルド時に表題のようなエラーが出たので、ビルドできずに困ったので、原因と解消方法を備忘録として残します。
なおFlavorの設定にflutter_flavorizrを使用して、最初は debug/ releaseというflavorを設定していました。

再現環境

– Flutter (Channel stable, 2.2.3, on macOS 11.4 20F71 darwin-x64, locale
    ja-JP)
– Android toolchain – develop for Android devices (Android SDK version
    30.0.3)
– Xcode – develop for iOS and macOS(version 13.2.1)
– Android Studio (version 4.2)
– VS Code (version 1.63.2)

debug / releaseの名称は設定できなかった!

タイトルで答えを書きましたが、なんとなく使用した debug/ releaseという名称は、Androidの場合、予約語?という形で事前に登録されていて、使用できないことがエラーの原因でした。
Android開発をほとんどしたことがないのと、iOSでは問題なくビルドできていたので、最初は原因が全くわからなかったのですが、調べていく中でやっと原因に辿り着くことができました。
最終的には、{ProjectName}/android/app/build.gradle に記入したflavor名をdevelop/productionに変更しました。

普段はiOSのネイティブ開発がメインで、サブでFlutter開発をしているので、iOS開発のルールやお作法はある程度把握していますが、Android開発のルールやお作法は全く知らなかったので、改めてFlutterでコード(のみ)を書ける≠AndroidとiOSアプリ開発ができるではないということを思い知らされました。
FlutterのAndroid開発を今後も続ける場合、純粋なFlutterの知識だけでなく、Android開発の知識やノウハウも高めていく必要があると思います。

参考

  • http://leckyyyyyyy.github.io/post/2015/android-product-flavor-unavailable-name/
+1

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA