Android 从defaultConfig看不到Gradle项目配置

Android 从defaultConfig看不到Gradle项目配置,android,gradle,Android,Gradle,我试图在BuildConfig.java中列出我的所有Android Gradle项目的实际依赖项(请参阅)。为此,我使用了与以下类似的代码: def getProjectAndBuildscriptDependencies() { project.allprojects.collectMany{ proj -> def configurations = (proj.configurations + proj.buildscript.configurations)

我试图在BuildConfig.java中列出我的所有Android Gradle项目的实际依赖项(请参阅)。为此,我使用了与以下类似的代码:

def getProjectAndBuildscriptDependencies() {
    project.allprojects.collectMany{ proj ->
        def configurations = (proj.configurations + proj.buildscript.configurations)
        configurations.collectMany { it.allDependencies }
    }.findAll { it instanceof ExternalDependency }
}

private def resolveActualDependencyVersion(Dependency dependency) {
    def version = dependency.version
    boolean mightBeDynamicVersion = version != null && (version.endsWith('+') || version.endsWith(']') || version.endsWith(')') || version.startsWith('latest.'))
    if (!mightBeDynamicVersion){
        return version
    }

    def actualVersion = resolveWithAllRepositories{
        project.configurations.detachedConfiguration(dependency).resolvedConfiguration.lenientConfiguration
            .getFirstLevelModuleDependencies(org.gradle.api.specs.Specs.SATISFIES_ALL).find()?.moduleVersion ?: version
    }
    return actualVersion
}
这个函数应该收集我所有的依赖项。如果我从某个任务调用它,它会执行它必须执行的操作:

task printCurrentDependencies << {
    def current = getProjectAndBuildscriptDependencies()

    def currentVersions = [:]
    current.each { dependency ->
        def actualVersion = resolveActualDependencyVersion(dependency)
        currentVersions.put(keyOf(dependency), actualVersion)
    }
}
这种行为上的差异让我困惑。为什么会发生这种情况,以及如何解决它并实现我真正想要的

android {
    defaultConfig {        
        buildConfigField "int", "depsCount", getProjectDependencies().size().toString()
    }
}