私はそのビルドシステムとしてのGradleとAndroidのアプリケーションに取り組んでいます。しかし、またGradleビルドスクリプト(Android)で定数を定義して使用する方法は?
productFlavors {
orange {
applicationId "com.fruits.android.orange"
// ...
Javaコードは、それへのアクセス権を持つようにBuildConfig
を経由して、それを公開する:
私の目的はapplicationId
として値(パッケージ名)を使用することです。
このアクセスは味外側からにする必要があり(それがPlayストアでのアップグレードのためにユーザを促すことができるように、すなわち、アプリの無料版は有料版のパッケージ名を知っている必要があります)。
だから私はそのような何かをしたいと思います:
productFlavors {
orange {
applicationId orangeProPackage
// ...
buildConfigField 'String', 'ORANGE_PRO_PACKAGE', "$orangeProPackage" // ?
のみ、私はそれが全体のbuild.gradleに見えますし、スクリプトを壊さないように
orangeProPackage
を定義するかどうかはわかりません。
いくつかの異なる味をありますので、私はそのような何とかグループのすべてのこれらの定数(私は推測?)ことができれば、それが最善のようになります。その後、
def proPackages = [
orange: "..."
apple: "..."
banana: "..."
]
とは清潔で、記述方法などにそれらを参照してください。 proPackages.orange
など
の質問は、どのようにそれを達成することですか?
これは私がその質問(およびいくつかの他を)見てきましたIs it possible to declare a variable in Gradle usable in Java?
の複製ではありません。私はbuildConfigFieldsを宣言する方法を知っている、私はすでにたくさん持っている。私の質問はおよそbuildConfigField
とapplicationId
と同じ値を再利用しています。
可能な重複は、[Javaで使用可能なのGradleで変数を宣言することは可能ですか?](http://stackoverflow.com/questions/17197636/is-it-possible-to-declare-a-variable-in- gradle-in-java) – ThomasThiebaud
@Maloubobolaそれは重複していません。私はその質問(といくつかの他のもの)を見てきました。私はbuildConfigFieldsを宣言する方法を知っている、私はすでにたくさん持っている。私の質問は、 'buildConfigField' *と*' applicationId'と同じ値を再利用することです。 –