【Kotlin/Android】BuildConfigが生成されない場合の解消法!
この記事からわかること
- Android Studio/Kotlinでビルド環境を変更する方法
- debugやdevelop、staging、releaseなど
- APIURLや設定情報を環境ごとに変えるには?
- buildConfigFieldやresValueの使い方
index
[open]
\ アプリをリリースしました /
友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-
posted withアプリーチ
環境
- Android Studio:Flamingo
- Kotlin:1.8.20
Cause: defaultConfig contains custom BuildConfig fields, but the feature is disabled.
defaultConfig {
// 〜〜〜〜〜〜〜〜〜
buildConfigField("String", "API_URL", "https://appdev-room.com/dev")
}
build.gradle
内に上記のようにbuildConfigField
を追加して「Sync now」をすると以下のエラーが発生することがあります。
Cause: defaultConfig contains custom BuildConfig fields, but the feature is disabled.
これはBuildConfig
を生成する設定がOFFになっていることで発生するようです。そのためbuild.gradle
内のbuildFeatures
にbuildConfig true
を記述することで解決することができました。
buildFeatures {
buildConfig true
}
defaultConfig {
// 〜〜〜〜〜〜〜〜〜
buildConfigField("String", "API_URL", "https://appdev-room.com/dev")
}
別の解決法としてproject/gradle.properties
内に以下の設定を追加することでも解消するようです。
android.defaults.buildfeatures.buildconfig=true
BuildConfigが生成されない場合の解消法
「Sync now」ができてもコードからBuildConfig
クラスが参照できない場合があります。本来なら以下のimport
で導入できるはず。
import com.example.project.BuildConfig
結局以下のようにして色々とキャッシュを削除すると解決することができました。
- Android Studioの再起動
- Clean Build
- 書き直して「Sync now」
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。