質問

各サブプロジェクトのAndroid構成ブロックを複製するのではなく、

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.0"

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 14
    }
}
.

私はむしろこれを最上位/根卒業用ビルドファイルのように置くことができます。

subprojects{
    android {
        compileSdkVersion 19
        buildToolsVersion "19.0.0"

        defaultConfig {
            minSdkVersion 9
            targetSdkVersion 14
        }
    }
}
.

しかし、これはうまくいきません。:(

エラー: "..議論のための方法Android()が見つからない..."

役に立ちましたか?

解決

これに対する解決策は次のとおりです。

subprojects{
    afterEvaluate {
        android {
            compileSdkVersion 19
            buildToolsVersion "19.0.0"

            defaultConfig {
                minSdkVersion 9
                targetSdkVersion 14
            }
        }
    }
}
.

私が知っている限り、これは評価時間でAndroid {...}を処理/使用することがそれが存在しなければならないことを意味するからである(すなわち、明示的に書かれた、または「適用プラグイン」の一部として含める)からである。ルートビルドファイルのサブプロジェクトにヒットします。そして、より正確には、最上位プロジェクトに定義されている必要があることを意味します(これは「Android」または「Android-Library」ビルド自体ではない可能性がある可能性がある可能性があります)。ただし、評価後にプッシュした場合は、各サブプロジェクト内で直接使用可能なものを使用できます。

この質問+解決策も、すべてのサブプロジェクトがAndroidプロジェクトの一種のAndroidプロジェクトであると仮定します(私の場合は、必ずしも他の人のためにはそうではありません)。 より安全な答えは使用することです:

subprojects{
    afterEvaluate {
        if(it.hasProperty('android')){
            android {
                compileSdkVersion 19
                buildToolsVersion "19.0.0"

                defaultConfig {
                    minSdkVersion 9
                    targetSdkVersion 14
                }
            }
        }
    }
}
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top