我将 gradle 版本 5.6.1 更改为 6.5.1,并将 'com.android.tools.build:gradle:3.5.0' 更改为 'com.android.tools.build:gradle:4.0.1'。之后我得到了 FAILURE: Build failed with an exception。
* What went wrong:
A problem occurred configuring project ':app'.
> groovy.lang.MissingMethodException: No signature of method: org.gradle.api.internal.file.DefaultFilePropertyFactory$DefaultDirectoryVar.toPath() is applicable for argument types: () values: []
Possible solutions: with(groovy.lang.Closure), each(groovy.lang.Closure), tap(groovy.lang.Closure), with(boolean, groovy.lang.Closure), getAt(java.lang.String), putAt(java.lang.String, java.lang.Object)
我知道在新的 gradle 中不存在方法 .toPath(),但是向新的 gradle 添加了哪些替代方法?或者是否存在另一种获取我的项目的相对路径的方法?
这是代码示例:
buildTypes {
release {
applicationVariants.all { variant ->
variant.outputs.all { output ->
def relative_apk_folder = output.packageApplication.outputDirectory.toPath().relativize(project.rootDir.toPath()).toString() + "/bin/"
outputFileName = new File("$relative_apk_folder" + "MyAPK.apk")
}
}
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.sign_app
}
debug {
}
}