はじめに
前回に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