天天看點

自定義 Android Gradle 打包時生成的 apk 名稱寫在前面的話啰嗦一句

寫在前面的話

Android 程式開發完成之後,我們少不了的是要生成手機可用的 apk 軟體安裝包

Build > Generate Signed Bundle / APK

一頓操作之後,發現生成的名字是 app-release.apk,作為一個程式員,變量命名要有意義,這個 app-release 一點可識性都沒有,果斷修改

啰嗦一句

早期的 Android Studio 寫程式時,使用以下代碼進行修改,可以完美實作想要的功能,但在更新了新版本的 Adnroid Studio 之後,發現 outputFile 隻讀了,會報錯,

這時候修改成下面新版本的代碼即可

舊版本代碼

app > build.gradle

修改 android 節點下的 buildTypes 節點,增加如下代碼

applicationVariants.all { variant ->
    variant.outputs.each { output ->
        def newName = output.outputFile.name
        newName = newName.replace("app-release", "ZQUNYAN-release-" + "${variant.versionName}")
        output.outputFile = new File(output.outputFile.parent, newName)
    }
}
           
新版本更新

在使用新版本的 Android Studio 時,提示報錯 outputFile 為隻讀,不可編輯

以上代碼使用如下替代

android.applicationVariants.all { variant ->
    variant.outputs.all {
        outputFileName = "${defaultConfig.applicationId}_${defaultConfig.versionName}.apk"
    }
}
           
PS

自定義檔案名時,常用的變量為 gradle 中定義的 defaultConfig 中的變量。

自定義 Android Gradle 打包時生成的 apk 名稱寫在前面的話啰嗦一句