使用0.13.0中的新“outputs”属性更改输出文件

时间:2014-09-27 07:55:07

标签: android gradle

刚刚将我的android项目更新为最新的android gradle插件并更改了脚本,因为有一些不赞成使用的方法。但是,当我尝试构建项目时,出现argument type mismatch错误。当我尝试更改outputfile名称时,我发现出现了问题,以下是' build.gradle'中脚本的一部分:

android.applicationVariants.all { variant ->

   def apkName = target;
   if (variant.buildType.name == "release") {
      apkName += "-RELEASE.apk";
   } else {
      apkName += "-DEBUG.apk"
   }

   // this is the line caused type mismatch error
   variant.outputs.outputFile = file("$project.buildDir/outputs/apk/" + apkName)
}

我试图改为      variant.outputs.outputFile = "$project.buildDir/outputs/apk/" + apkName 但它不起作用。

如何解决?

2 个答案:

答案 0 :(得分:0)

引用我自己对同一问题here的回答,您可以将脚本更改为以下内容:

variant.outputs.each { output ->
    if (output.outputFile != null && output.outputFile.name.endsWith('.apk')) {
        output.outputFile = file("${project.buildDir}/outputs/apk/" + apkName)
    }
}

答案 1 :(得分:-1)

您希望直接在变体上设置outputFile属性。

variant.outputFile = file("$project.buildDir/outputs/apk/" + apkName)