1

我将 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 {
        }
    }
4

1 回答 1

0

试试这个:

def relative_apk_folder = "../../../../../bin/" outputFileName = new File(relative_apk_folder + "MyAPK.apk")

它对我的项目有帮助。

于 2020-07-28T11:12:53.083 回答