逃跑。(点)在 gradle 字符串中

noo*_*oob 3 android gradle android-studio-3.0

我正在尝试在创建 Android 版本时更改输出文件名。这是我为此使用的代码

applicationVariants.all { variant ->
    variant.outputs.all {
        def buildDate = getDate()
        outputFileName = "$variant.applicationId-$buildDate-$variant.buildType.name"
    }
}
Run Code Online (Sandbox Code Playgroud)

它工作正常,但输出文件没有.apk扩展名。所以我尝试通过在最后添加 .apk 来添加它

outputFileName ="$variant.applicationId-$buildDate-$variant.buildType.name.apk"
Run Code Online (Sandbox Code Playgroud)

这显然不起作用。它产生了以下错误 -

No such property: apk for class: java.lang.String
Run Code Online (Sandbox Code Playgroud)

然后我尝试添加\\before.apk哪个有效,但\.apk. 与\$. 我可以在 之前添加一个空格.apk,但文件名中会有一个空格。

我的类路径设置为 -

classpath 'com.android.tools.build:gradle:3.0.1'
classpath 'com.google.gms:google-services:3.1.0'
Run Code Online (Sandbox Code Playgroud)

所以我的问题是如何转义点字符并按原样打印它。

Sar*_*tal 6

我认为正在发生的事情是,gradle无论是变量的完整名称还是普通的String.

一种解决方案是将变量括在花括号中,如下所示:

"${variant.buildType.name}.apk"
Run Code Online (Sandbox Code Playgroud)