Android 在gradle中重命名apk

Android 在gradle中重命名apk,android,gradle,apk,Android,Gradle,Apk,我想从gradle重命名我的apk。我在build中有以下几行代码 applicationVariants.all { variant -> def file = variant.outputFile def filename = file.name.replace("SomeXXX", "SomeYYY") variant.outputFile = new File(file.parent, filena

我想从gradle重命名我的apk。我在build中有以下几行代码

applicationVariants.all { variant ->      
            def file = variant.outputFile
            def filename = file.name.replace("SomeXXX", "SomeYYY")
            variant.outputFile = new File(file.parent, filename)

                    }

这将成功重命名APK,但不会重命名未对齐的APK。请有人来解释一下。

自从你发布这篇文章以来,gradle插件已经有所进展,但是要在当前插件(v1.0.0)上实现这一点,你可以使用以下方法:-

    variant.outputs.each { output ->
        def alignedOutputFile = output.outputFile
        def unalignedOutputFile = output.packageApplication.outputFile

        // Customise APK filenames (to include build version)
        if (variant.buildType.zipAlignEnabled) {
            // normal APK
            output.outputFile = new File(alignedOutputFile.parent, alignedOutputFile.name.replace(".apk", "-" + defaultConfig.versionName + "-" + defaultConfig.versionCode + ".apk"))
        }
        // 'unaligned' APK
        output.packageApplication.outputFile = new File(unalignedOutputFile.parent, unalignedOutputFile.name.replace(".apk", "-" + defaultConfig.versionName + "-" + defaultConfig.versionCode + ".apk"))
    }

可能
applicationVariants
不包含未对齐变体的信息。但是,如果你知道变体名称,那么很容易找到未对齐的变体。相关:谢谢你的回答。但是上面的代码片段到哪里去了?当我在build.gradle文件的android{…}中发布它时,我得到一个无法解析的符号“variant”——运行gradle 2.2.1和android Studio 1.0。2@Zainodis这应该放在buildTypes部分。@karl非常感谢您的评论!与此同时,我意识到Android studio中的gradle编辑器还没有完成,这就是变量无法解析的原因。这对我在命令行中使用gradle 2.12不起作用。我将代码段放在buildTypes下,在buildTypes上找不到属性“outputs”{name=variant…