Android Studio-Gradle任务在绑定到预构建时提供StackOverflowerError

Android Studio-Gradle任务在绑定到预构建时提供StackOverflowerError,android,gradle,groovy,grgit,Android,Gradle,Groovy,Grgit,我的Android build.gradle上有一个任务,该任务是将源代码从我的git存储库下载到一个特定的目录(如果它不存在),并在克隆后签出到一个特定的分支(如果repo已经被克隆,则先进行获取,然后进行签出)。我使用的是GrGit版本1.6.0 以下是我的任务代码: task downloadRepoSrc << { def branch = "development" def pathToClone = "path/to/clone/" def uri

我的Android build.gradle上有一个任务,该任务是将源代码从我的git存储库下载到一个特定的目录(如果它不存在),并在克隆后签出到一个特定的分支(如果repo已经被克隆,则先进行获取,然后进行签出)。我使用的是GrGit版本1.6.0

以下是我的任务代码:

task downloadRepoSrc << {
    def branch = "development"
    def pathToClone = "path/to/clone/"
    def uriToRepo = "git@restofurihere"
    try {
        // Try to open repository if it exists
        def grgit = Grgit.open(dir: pathToClone)
        grgit.fetch()
        if (grgit.branch.list().find {it.name == branch}) {
            grgit.checkout(branch: branch)
        } else {
            grgit.checkout(branch: branch, startPoint: "origin/$branch", createBranch: true)
        }
    } catch (RepositoryNotFoundException ignored) {
        // Repository not found. Try to clone it.
        def grgit = Grgit.clone(dir: pathToClone, uri: "uriToRepo")
        grgit.checkout(branch: branch, startPoint: "origin/$branch", createBranch: true)
    } catch (Exception e) {
        e.printStackTrace()
    }
}
每当我在Android studio的界面上手动运行任务时,它都会完美地运行。但是,每当我尝试构建项目时,都会收到以下错误消息:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':native-myproject:downloadRepoSrc'.
> java.lang.StackOverflowError (no error message)
我不知道为什么在构建项目时任务会失败,但在手动运行时任务不会失败。我的目标是使依赖项项目的构建过程自动化,前提是我将正确的分支/标记提供给它,以便在git上签出。目前,每当我想使用不同的分支/标记时,我需要记住手动运行任务,这是可行的,但不是最佳的

对于任何可能出错的帮助或提示,我们将不胜感激。如果你需要更多的细节,请告诉我


编辑:这是使用--stacktrace选项运行gradle时输出的stacktrace。因为它很长,我会把它链接到一个文件夹中。它似乎在resolveBranch函数上输入了一些无限递归,但只有在构建项目时,而不是在手动运行任务时。

您是否尝试过使用
--stacktrace
选项运行,以查看它溢出的是什么特定方法(或一系列方法)?我用stacktrace输出更新了这个问题。使用调试器,问题似乎发生在这一行:
if(grgit.branch.list().find{it.name==branch})
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':native-myproject:downloadRepoSrc'.
> java.lang.StackOverflowError (no error message)