web-dev-qa-db-ja.com

整数変数を使用するGradle buildConfigField

自分でgradleスクリプトで定義された変数を使用できるように、ファイルされたビルド構成を定義したいと思います:

def someVar = 512
Android {
...
    buildConfigField 'int', 'SOME_INT_FIELD',  someVar
}

ただし、次のエラーが発生します。

エラー:(25、0)Gradle DSLメソッドが見つかりません: 'buildConfigField()'

考えられる原因:

  • プロジェクト「PROJECT」は、メソッドを含まないバージョンのGradleを使用している可能性があります。
  • ビルドファイルにGradleプラグインがない可能性があります。

私は次のような引用符を使用できます:

def someVar = 0
Android {
...
    buildConfigField 'int', 'SOME_INT_FIELD',  '"' + someVar + '"'
}

しかし、これはBuildConfigのコンパイラエラーになります

// Fields from default config.
public static final int SOME_INT_FILED = "512";

だから今のところ私は一緒にいます:

def someVar = 0
Android {
...
    buildConfigField 'String', 'SOME_INT_FIELD',  '"' + someVar + '"'
}

そしてそれを次のように使用します:

final int value = Integer.valueOf(BuildConfig.SOME_INT_FIELD);

誰かより良い解決策がありますか、それともbuildConfigFieldを間違って使用していますか?

(上記の可能性のいずれかと組み合わせて括弧も使用してみました。)

15
salcosand
def someVar = 100

buildConfigField 'int', 'SOME_INT_FIELD',  String.valueOf(someVar)

上記を使用して質問を解決します。

1
peerless2012