[尝试以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)
}
}
如何解决?我应该改变什么?
这似乎是与"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文件(应用程序级别/项目级别),以查看上面的依赖项已在哪里声明并进行相应更改。