Android gradle 3.0.0 アップデート後の buildConfigField 警告 質問する

Android gradle 3.0.0 アップデート後の buildConfigField 警告 質問する

最近、Android Studio の最新の Canary ビルドをインストールしました。現在、Android Gradle プラグインを使用しています3.0.0-alpha4(以前は でした2.3.3)。

すべての buildConfigFields に対して警告が表示されるようになりました。

buildTypes {
        def BOOLEAN = "boolean"
        def STRING = "String"
        def INT = "int"
        def TRUE = "true"
        def FALSE = "false"
        def SOME_PER_BUILD_TYPE_FIELD = "SOME_PER_BUILD_TYPE_FIELD"

 debug {
            buildConfigField BOOLEAN, SOME_PER_BUILD_TYPE_FIELD, FALSE
}

 release {
            buildConfigField BOOLEAN, SOME_PER_BUILD_TYPE_FIELD, TRUE
}

警告は次のようになります:

Warning:BuildType(debug): buildConfigField 'SOME_PER_BUILD_TYPE_FIELD' value is being replaced: false -> false
Warning:BuildType(debug): buildConfigField 'SOME_STRING_FIELD' value is being replaced: "999" -> "999"

さまざまなフィールドやビルド タイプで 100 個ほどの警告があります。どうすれば修正できますか? また、警告は実際に何を伝えているのでしょうか?

ベストアンサー1

その理由は、ヴァシリー少し補足すると、他のビルドタイプで初期化されたビルドタイプがある場合が、原因の 1 つとして考えられます。たとえば、次のビルド構成を検討してください。

debug {
    buildConfigField 'boolean', 'ENABLE_CRASH_REPORTING', 'false'
}
stage {
    initWith(buildTypes.debug)
    buildConfigField 'boolean', 'ENABLE_CRASH_REPORTING', 'true'
}
release {
    buildConfigField 'boolean', 'ENABLE_CRASH_REPORTING', 'true'
}

この場合、buildTypeステージの警告が表示されます

警告: BuildType(stage): buildConfigField 'ENABLE_CRASH_REPORTING' の値が置き換えられています: false -> true

理由は単純明快で、ステージすべてのフィールドを継承するデバッグその後ステージ異なる値を割り当てたい場合があるため、置き換えますステージ (上記の場合のように)回避策としては、

initWith(buildTypes.debug)

signingConfig signingConfigs.debug

これにより、ステージ ビルドを作成するときに通常発生する署名エラーが解消されます。ただし、現在の構成の主な違いは次のとおりです。ステージビルド変数は継承されませんデバッグこの場合、これについても警告は出ません。また、ビルド変数をすべて再定義する必要があります。ステージこの場合(すでに述べたように)ステージもはや継承されていないデバッグ

おすすめ記事