Скопируйте файл APK из места сборки в другое место в Gradle 4.4 - PullRequest
0 голосов
/ 04 мая 2018

Как и в gradle 4.4, невозможно изменить путь выходного файла APK, и мы не можем сейчас использовать абсолютный путь для вывода apk из документов - Изменение вариантов вывода при сборке время может не работать , поэтому я искал в SO и нашел решение, которое мы можем скопировать apk в нужное место после его сборки, но я не очень разбираюсь в скриптах gradle и не могу вызвать задачу копирования. Может кто-нибудь мне помочь.

код из моего gradle:

    android {
    ................
    android.applicationVariants.all { variant ->
    variant.outputs.all {
        if (variant.name.contains("Release")) {
             outputFileName = "${variant.name}-${variant.versionName}.apk"
        }
     }
     assembleRelease {
        dependsOn copyDocs
    }
    }// end of android brace

    task copyApk(type: Copy) {
    from outputFileName
    into file("${project.buildDir}/outputs/apk")
   }
  }

С этого момента я получаю сообщение об ошибке:

Не удалось получить неизвестное свойство outputFileName для задачи

Есть идеи, как скопировать файл apk по другому пути? Спасибо.

Ответы [ 2 ]

0 голосов
/ 09 апреля 2019

Я могу сделать это, запустив скрипт copy в файле gradle, например:

android.applicationVariants.all { variant ->
variant.outputs.all {

copy {
      from file("${project.buildDir}/outputs/apk/" + variant.name + "/release/${outputFileName}")
      into file("${project.buildDir}/outputs/apk/")
     }
    delete file("${project.buildDir}/outputs/apk/" + variant.name) // i don't want apk on this location so after successful copy i am deleting it
  }
 }
0 голосов
/ 04 мая 2018
android.applicationVariants.all { variant ->
    variant.outputs.all {
        println variant.name
        if (variant.name.contains("release")) {
            outputFileName = new File("../", "${variant.name}-${variant.versionName}.apk")
            println outputFileName
        }
    }
}

и удалите

task copyApk
...