[{"data":1,"prerenderedAt":288},["ShallowReactive",2],{"\u002Fandroid\u002Fandroid_sdk\u002Fgradle":3},{"id":4,"title":5,"body":6,"date":279,"description":280,"draft":281,"extension":282,"meta":283,"navigation":133,"path":284,"seo":285,"stem":286,"__hash__":287},"blog\u002F01.android\u002F03.android_SDK\u002F90.gradle.md","Gradleを扱う",{"type":7,"value":8,"toc":275},"minimark",[9,14,45,50,61,76,194,197,223,226,237,240,261,271],[10,11,13],"h1",{"id":12},"buildgradleで環境変数定数を管理する","build.gradleで環境変数・定数を管理する",[15,16,17,18,22,23,26,27,30,31,34,35,38,39,34,41,44],"p",{},"Gradleが自動生成してくれる ",[19,20,21],"code",{},"BuildConfig"," を使うことで、 ",[19,24,25],{},"buildTypes"," や ",[19,28,29],{},"productFlavor"," ごとに初期値や定数値を持たせることができる。\n例えば、APIのドメインや広告IDなど、開発版（",[19,32,33],{},"buildType",": ",[19,36,37],{},"debug","）とリリース版（",[19,40,33],{},[19,42,43],{},"release","）で設定値を切り替えるときに利用。",[46,47,49],"h2",{"id":48},"buildconfigに定数を乗せる実装","BuildConfigに定数を乗せる実装",[15,51,52,54,55,57,58,60],{},[19,53,25],{}," (",[19,56,37],{}," \u002F ",[19,59,43],{},") ごとに定義する場合は以下でOKです。",[62,63,64,71],"ul",{},[65,66,67,70],"li",{},[19,68,69],{},"defaultConfig"," に初期値を設定する。",[65,72,73,75],{},[19,74,25],{}," ごとに定数の値を上書き設定する。",[77,78,83],"pre",{"className":79,"code":80,"language":81,"meta":82,"style":82},"language-groovy shiki shiki-themes github-light","android {\n  \u002F\u002F ...\n  defaultConfig {\n      \u002F\u002F buildTypesで上書きがなかった場合に設定される値\n      buildConfigField \"String\", \"AD_UNIT_ID\", \"\\\"とりあえずな広告ID\\\"\"\n  }\n  \u002F\u002F ...\n\n  buildTypes {\n    release {\n      \u002F\u002F 本物の広告IDを上書きして定義\n      buildConfigField(\"String\", \"AD_UNIT_ID\", \"\\\"本物の広告ID\\\"\")\n      ...\n    }\n    \u002F\u002F とりあえずな広告IDをdefaultConfigに書いていますが、\n    \u002F\u002F debugブロックに書いて、defaultConfigは空文字などを指定しても問題ありません。\n  }\n}\n\n","groovy","",[19,84,85,93,99,105,111,117,123,128,135,141,147,153,159,165,171,177,183,188],{"__ignoreMap":82},[86,87,90],"span",{"class":88,"line":89},"line",1,[86,91,92],{},"android {\n",[86,94,96],{"class":88,"line":95},2,[86,97,98],{},"  \u002F\u002F ...\n",[86,100,102],{"class":88,"line":101},3,[86,103,104],{},"  defaultConfig {\n",[86,106,108],{"class":88,"line":107},4,[86,109,110],{},"      \u002F\u002F buildTypesで上書きがなかった場合に設定される値\n",[86,112,114],{"class":88,"line":113},5,[86,115,116],{},"      buildConfigField \"String\", \"AD_UNIT_ID\", \"\\\"とりあえずな広告ID\\\"\"\n",[86,118,120],{"class":88,"line":119},6,[86,121,122],{},"  }\n",[86,124,126],{"class":88,"line":125},7,[86,127,98],{},[86,129,131],{"class":88,"line":130},8,[86,132,134],{"emptyLinePlaceholder":133},true,"\n",[86,136,138],{"class":88,"line":137},9,[86,139,140],{},"  buildTypes {\n",[86,142,144],{"class":88,"line":143},10,[86,145,146],{},"    release {\n",[86,148,150],{"class":88,"line":149},11,[86,151,152],{},"      \u002F\u002F 本物の広告IDを上書きして定義\n",[86,154,156],{"class":88,"line":155},12,[86,157,158],{},"      buildConfigField(\"String\", \"AD_UNIT_ID\", \"\\\"本物の広告ID\\\"\")\n",[86,160,162],{"class":88,"line":161},13,[86,163,164],{},"      ...\n",[86,166,168],{"class":88,"line":167},14,[86,169,170],{},"    }\n",[86,172,174],{"class":88,"line":173},15,[86,175,176],{},"    \u002F\u002F とりあえずな広告IDをdefaultConfigに書いていますが、\n",[86,178,180],{"class":88,"line":179},16,[86,181,182],{},"    \u002F\u002F debugブロックに書いて、defaultConfigは空文字などを指定しても問題ありません。\n",[86,184,186],{"class":88,"line":185},17,[86,187,122],{},[86,189,191],{"class":88,"line":190},18,[86,192,193],{},"}\n",[15,195,196],{},"上記の定数を使いたいところで、以下ように参照すれば値を取得することができる。",[77,198,202],{"className":199,"code":200,"language":201,"meta":82,"style":82},"language-kotlin shiki shiki-themes github-light","const val AD_UNIT_ID_SIDE_BAR = BuildConfig.AD_UNIT_ID\n","kotlin",[19,203,204],{"__ignoreMap":82},[86,205,206,210,213,217,220],{"class":88,"line":89},[86,207,209],{"class":208},"sD7c4","const",[86,211,212],{"class":208}," val",[86,214,216],{"class":215},"sgsFI"," AD_UNIT_ID_SIDE_BAR ",[86,218,219],{"class":208},"=",[86,221,222],{"class":215}," BuildConfig.AD_UNIT_ID\n",[46,224,225],{"id":225},"参考",[62,227,228],{},[65,229,230],{},[231,232,236],"a",{"href":233,"rel":234},"https:\u002F\u002Fdeveloper.android.com\u002Fstudio\u002Fbuild\u002Fgradle-tips?hl=ja#simplify-app-development",[235],"nofollow","Gradle のヒントとテクニック | Android Developers",[10,238,239],{"id":239},"gradleのキャッシュを削除する",[77,241,245],{"className":242,"code":243,"language":244,"meta":82,"style":82},"language-bash shiki shiki-themes github-light","rm -rf ~\u002F.gradle\u002Fcaches\n\n","bash",[19,246,247],{"__ignoreMap":82},[86,248,249,253,257],{"class":88,"line":89},[86,250,252],{"class":251},"s7eDp","rm",[86,254,256],{"class":255},"sYu0t"," -rf",[86,258,260],{"class":259},"sYBdl"," ~\u002F.gradle\u002Fcaches\n",[15,262,263,266,267,270],{},[19,264,265],{},"~\u002F"," となっていることからも分かる通り、削除するディレクトリはユーザディレクトリ直下にあるキャッシュディレクトリ。\nこれを実行すると次回のビルドには時間がかかる。そのため、「PCやプロジェクトの挙動がおかしいな？」と思った時に実行する。\nなお、 ",[19,268,269],{},".gradle"," フォルダを削除してもGradleが次回ビルド時に自動で再構築してくれるため、完全に削除しても全く問題ない。",[272,273,274],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sD7c4, html code.shiki .sD7c4{--shiki-default:#D73A49}html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html pre.shiki code .s7eDp, html code.shiki .s7eDp{--shiki-default:#6F42C1}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}",{"title":82,"searchDepth":95,"depth":95,"links":276},[277,278],{"id":48,"depth":95,"text":49},{"id":225,"depth":95,"text":225},"2026-06-14T07:00:00+09:00","Gradleについて解説します。",false,"md",{},"\u002Fandroid\u002Fandroid_sdk\u002Fgradle",{"title":5,"description":280},"01.android\u002F03.android_SDK\u002F90.gradle","kh6NdqkmnthzwOGBs1HPaKPjq4f8iv8e1pEdJfVzLwo",1781530001306]