Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 正在重命名gradle apk输出文件,但有2个apk_Android_Gradle_Android Studio_Apk_Android Gradle Plugin - Fatal编程技术网

Android 正在重命名gradle apk输出文件,但有2个apk

Android 正在重命名gradle apk输出文件,但有2个apk,android,gradle,android-studio,apk,android-gradle-plugin,Android,Gradle,Android Studio,Apk,Android Gradle Plugin,我试图根据git分支命名我的应用程序的APK文件,该分支通过向jenkins传递一个参数来工作。然而,我最终得到了两个APK,这是不可取的,因为我的一个Gradle任务将APK上传到一个分布式列表中。重命名此APK的全部目的是让接收它的人确切地知道他们看到的分支 buildTypes { ... feature { signingConfig signingConfigs.debug applicationVariants.all { vari

我试图根据git分支命名我的应用程序的APK文件,该分支通过向jenkins传递一个参数来工作。然而,我最终得到了两个APK,这是不可取的,因为我的一个Gradle任务将APK上传到一个分布式列表中。重命名此APK的全部目的是让接收它的人确切地知道他们看到的分支

buildTypes {
    ...

    feature {
        signingConfig signingConfigs.debug

        applicationVariants.all { variant ->
            appendVersionNameVersionCode(variant, defaultConfig)
        }

    }

    ...
}

...

def appendVersionNameVersionCode(variant, defaultConfig) {
    //check if staging variant
    if(variant.name == android.buildTypes.feature.name){
        def branch = hasProperty('branch') ? branch.replaceAll('origin/', '') : "UNKNOWN"
        def file = variant.packageApplication.outputFile
        def fileName = "myapp-FEATURE-" + branch + ".apk"
        variant.packageApplication.outputFile = new File(file.parent, fileName)
    }
}
然后调用gradle命令:

gradle assembleFeature --project-dir=/Path/To/myapp/ -Pbranch=origin/development
从中生成的两个文件是:

  • app-feature.apk
  • myapp-FEATURE-development.apk
  • 不需要文件1,我最终希望重命名该文件,而不是生成一个新文件,即文件2


    有什么想法吗?

    结果是,格拉德尔总是打包两个APK。一个对齐,一个不对齐

    为了重命名对齐的apk文件,我必须添加以下内容:

        if (variant.zipAlign) {
            newName = "myapp-FEATURE-" + branch + "-ALIGNED.apk"
            variant.outputFile = new File(file.parentFile, newName);
        }
    

    您确定它是variant.zipAlign而不是output.zipAlign吗?因为variant上的属性zipAlign在Android Studio/Gradle版本1.0.0上给了我一个未找到属性的错误。Gradle的最新版本已将属性“zipAlign”更改为“zipAlignEnabled”,所以您需要使用variant.zipAlignEnabled进行判断。Android Studio不会自动找到此apk并报告“本地路径不存在”错误。。我猜这是安卓工作室的bug还是?