web-dev-qa-db-ja.com

Android gradleプラグインのapplicationVariantsのプロパティを知るにはどうすればよいですか?

AndroidStudioとgradleプラグインを使用してアプリケーションを開発しています。 DSLリファレンス でAndroidgradleプラグインの使用法を学びます。しかし、私が見つけた1つのことは、docのapplicationVariantsの部分が理解しにくいということです。それはそのような説明を与えるだけです:

DomainObjectSet <ApplicationVariant> applicationVariants

アプリケーションバリアントのリスト。コレクションは評価後に構築されるため、将来のアイテムを処理するために、Gradleのすべてのイテレーターで使用する必要があります。

しかし、ApplicationVariantのプロパティは何ですか?知りません。そして、ApplicationVariantを説明する参照リンクは何も見つかりませんでした。

ページの一番下にある Gradleプラグインユーザーガイド のみ。これは、applicationVariants、libraryVariants、およびtestVariantsで使用可能なプロパティを文書化します。しかし、これらのプロパティのかなりの部分が長い間非推奨になっていることがわかり、Androidはこのページを更新しませんでした。

では、ApplicationVariantで最新のプロパティはどこにありますか?

20
Tony Green

https://Android.googlesource.com/platform/tools/build/+/8dca86a/gradle/src/main/groovy/com/Android/build/gradle/internal/ApplicationVariant.groovy

私もそれを見つけるのに苦労しました。移動する場合のインターフェースは次のとおりです。バージョン名、アプリケーションIDなど、フレーバーで定義した小道具も含まれます。

public interface ApplicationVariant {
    String getName()
    String getDescription()
    String getDirName()
    String getBaseName()
    VariantConfiguration getConfig()
    boolean getZipAlign()
    boolean isSigned()
    boolean getRunProguard()
    FileCollection getRuntimeClasspath()
    FileCollection getResourcePackage()
    Compile getCompileTask()
    List<String> getRunCommand()
    String getPackage()
    AndroidBuilder createBuilder(AndroidBasePlugin androidBasePlugin)
}

オブジェクトの小道具を印刷するには:

def filtered = ['class', 'active']

println theObject.properties
            .sort{it.key}
            .collect{it}
            .findAll{!filtered.contains(it.key)}
            .join('\n')
18
CaptRespect

@CaptRespectの回答のリンクは、特定のビルドへのリンクです。マスターブランチのパブリックAPIへのリンクは次のとおりです。

/ gradle/api/ApplicationVariant.Java
(から派生) / gradle/api/ApkVariant.Java
(から派生) / gradle/api/BaseVariant.Java

3
MandisaW