はじめに
前回にAndroidStudio, XCodeのビルド環境設定の記事を書いたとき、環境変数とか環境によって違う機能を分けることについてもっといい方法があるんじゃないかなという疑問ができたので調べてみたのをまとめた。
その中で見つけたのがbuildConfigFieldだった。
buildConfigFieldはbuild.gradleのbuildTypes、productFlavorsに使える定義するものである。
gradle.properties
ちなみに、build.gradleはgitや他のバージョン管理ツールで公開されるので直接書くのではなくて、gradle.propertiesから読み込む方法をとる。
まずはgradle.propertiesに設定をする。build.gradleにはString、int、array、double、floatなどいろんなobjectを宣言可能だが今回はシンプルにwebviewのurlを使うためのStringを設定してみる。
1 2 | |
gradle.propertiesに設定をしたらbuild.gradleにも設定をする。
1 2 3 4 5 6 7 8 | |
第一変数はobjectの種類、第二変数は実際に使う名前、第三変数はgradle.propertiesで設定した名前になる。こういうふうにしたらすぐ使えるようになる。それではwebviewのところで
1
| |
こんなにstatic変数のように使う。すると、
yahooのFlavors
googleのFlavors
これの上にアプリの名前も変えてみよう。
gradle.propertiesにアプリの名前に使うStringを設定する。
1 2 3 4 | |
あと、build.gradleに追加します。
1 2 3 4 5 6 7 8 9 10 | |
ちなみにbuild.gradleにresValueと設定したらリソースとして使用できる。
第一変数はリソースの種類(ここはStringではなく、stringにすることを注意)、第二変数は実際に使う名前、第三変数はgradle.propertiesで設定した名前になる。そしてAndroidManifestで@string/appNameとすると、
yahooのFlavors
googleのFlavors
日本語がちゃんと出てこない。
1 2 3 4 5 6 7 8 9 10 | |
productFlavorsに直接書いたら、
yahooのFlavors
googleのFlavors
アプリ名も変えられる。でもなんで日本語がうまく出てこないのかの疑問ができたので今度また調べてまとめることにしよう。
参照
http://sakebook.hatenablog.com/entry/2015/11/20/015829 http://ja.stackoverflow.com/questions/31140/androidstudio%E3%81%A7%E5%90%84%E3%83%93%E3%83%AB%E3%83%89%E3%81%AB%E3%81%9D%E3%82%8C%E3%81%9E%E3%82%8C%E3%81%AE%E5%A4%89%E6%95%B0%E3%82%84%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%82%92%E4%BD%9C%E3%82%8B