我如何了解Android Gradle插件中applicationVariants的属性?

29

我正在使用 Android Studio 和 gradle 插件来开发应用程序。我在 DSL 参考文档 中学习了一些关于 android gradle 插件的用法。但我发现文档中的 applicationVariants 部分很难理解。它只给出了这样的描述:

DomainObjectSet<ApplicationVariant> applicationVariants

应用程序变体列表。由于集合是在评估后构建的,因此应使用 Gradle 的所有迭代器来处理未来的项目。

但 ApplicationVariant 中有哪些属性呢?我不知道。我找不到任何参考链接来描述 ApplicationVariant。

只有在 Gradle 插件用户指南 页面的底部,它记录了 applicationVariants、libraryVariants 和 testVariants 中可用的属性。但我发现其中很多属性已经被弃用了很长时间,而且 Android 没有更新这个页面。

那么我在哪里可以找到最新的 ApplicationVariant 属性呢?

3个回答

30

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

我也找了很久才找到它。 这是接口,以防它移动: 它还将具有您在口味中定义的任何属性,例如versionName、applicationId等。

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')

非常感谢。这很有帮助。但我还有一个问题。似乎只显示ApplicationVariant中的属性。LibraryVariant怎么样?我在您上面给我的链接中没有找到它。 - Tony Green

10

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接