[在构建android项目时出现intellij想法错误-groovy.lang.MissingMethodException:没有方法签名:

问题描述 投票:0回答:1

[尝试以intellij的想法构建Android项目并遇到以下错误:构建文件“ C:\ Users ... \ app \ build.gradle”行:91

配置项目':app'时发生问题。

groovy.lang.MissingMethodException:无方法签名:org.gradle.api.internal.file.DefaultFilePropertyFactory $ DefaultDirectoryVar.toPath()适用于参数类型:()值:[]可能的解决方案:each(groovy.lang.Closure),tap(groovy.lang.Closure),with(groovy.lang.Closure),with(boolean,groovy.lang.Closure),getAt(java.lang.String), putAt(java.lang.String,java.lang.Object)

applicationVariants.all { variant ->
    variant.outputs.each { output ->
        def project = "Demo"
        def flavourName = variant.flavorName
        def variantName = "Build"
        def apkName = project + "-" + flavourName + "-" + variantName + "-" + versionName + ".apk"
        def relativeRootDir = variant.packageApplicationProvider.get().outputDirectory.toPath()
                .relativize(rootDir.toPath()).toFile()    // <-- error line   
        output.outputFileName = new File("$relativeRootDir/release", apkName)
    }
}

如何解决?我应该改变什么?

java android intellij-idea groovy build.gradle
1个回答
0
投票

这似乎是与"io.fabric.tools:gradle".的版本“ 1.28.0”相关的问题

通常,如果在依赖关系(应用程序级别/项目级别)中使用版本控制的groupId:artifactId:n.+结构,则会发生此类问题。在这种情况下:

dependencies {
    classpath 'io.fabric.tools:gradle:1.+'
}

由于它会自动更新版本,因此,如果最新版本中存在任何致命错误,则该项目很可能会因构建/运行时错误而崩溃。

[Android Studio始终建议'避免使用+版本号;可能导致无法预测和不可重复的构建...'

发现一个有效的解决方案正在降级到特定的先前版本,例如1.27.1或1.28.0之前的任何其他稳定的最新版本,例如:

dependencies {
    classpath 'io.fabric.tools:gradle:1.27.1'
}

记住要检查两个gradle文件(应用程序级别/项目级别),以查看上面的依赖项已在哪里声明并进行相应更改。

© www.soinside.com 2019 - 2024. All rights reserved.