相关疑难解决方法(0)

如何使用gradle在APK文件名中设置versionName?

我正在尝试在gradle自动生成的APK文件名中设置特定的版本号.

现在gradle生成myapp-release.apk但我希望它看起来像myapp-release-1.0.apk.

我尝试过重命名看起来很乱的选项.有一个简单的方法吗?

buildTypes {
    release {
       signingConfig signingConfigs.release
       applicationVariants.each { variant ->
       def file = variant.outputFile
       variant.outputFile = new File(file.parent, file.name.replace(".apk", "-" +    defaultConfig.versionName + ".apk"))
    }
}
Run Code Online (Sandbox Code Playgroud)

我试过上面的代码没有运气.有什么建议?(使用gradle 1.6)

android build gradle apk android-gradle-plugin

159
推荐指数
9
解决办法
8万
查看次数

variantOutput.getPackageApplication()已过时

随着Gradle 4.10.1和Android Gradle插件的更新3.3.0,我得到以下警告:

警告:API' variantOutput.getPackageApplication()'已过时,已替换为' variant.getPackageApplicationProvider()'.

该行,与周围的上下文(由构建变量分配输出文件名):

applicationVariants.all { variant ->
    variant.outputs.all { output ->

        if (variant.getBuildType().getName() in rootProject.archiveBuildTypes) {

            def buildType = variant.getBuildType().getName()
            if (variant.versionName != null) {

                def baseName = output.baseName.toLowerCase()
                String fileName = "${rootProject.name}_${variant.versionName}-${baseName}.apk"

                // this is the line:
                outputFileName = new File(output.outputFile.parent, fileName).getName()
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

该迁移指南是不是太有帮助; 虽然variant.outputs.all可能有问题 - 只是不知道要替换什么 - 并且迁移指南指的是任务而不是构建变体.禁用时File ? Settings ? Experimental ? Gradle ? Only sync the active variant,我会得到更多的弃用警告(重点是,这些方法都没有被直接调用): …

gradle build.gradle android-gradle-plugin deprecation-warning build-variant

24
推荐指数
2
解决办法
2万
查看次数

Android Studio和Gradle:versionNameSuffix

我想在当前输出的APK文件中添加特殊的后缀buildType。我正在尝试使用标准的Gradle versionNameSuffix命令:

android {
    defaultConfig {
       ...
       versionNameSuffix "-XXX"
    }
    buildTypes {
        debug {
            versionNameSuffix "-YYY"
        }
        release {
            versionNameSuffix "-ZZZ"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

由于某些原因,这些后缀均未应用于实际的输出文件名。Android Studio是否会忽略此命令?无论我做什么,结果都是相同的:<module_name>-debug.apk或<module_name>-release.apk。

这是我的配置:

classpath 'com.android.tools.build:gradle:2.2.3'
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
Run Code Online (Sandbox Code Playgroud)

android gradle android-gradle-plugin

1
推荐指数
1
解决办法
3359
查看次数