刚刚将我的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但它不起作用。

如何解决?

最佳答案

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

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

10-05 18:02