Как получить apk относительного пути моего проекта в Gradle 6.5.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 с исключением.

* 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 {
        }
    }

1 ответ

Решение

Попробуй это:

def relative_apk_folder = "../../../../../bin/" outputFileName = новый файл (relative_apk_folder + "MyAPK.apk")

Это помогло в моем проекте.

Другие вопросы по тегам