7

Android Studio 将生成默认的 apk 名称为 app-(release|debug).apk。
如何生成与应用程序包名称相同的 apk 文件名,例如com.example-debug.apk.

4

5 回答 5

16

您可以在不使用其他任务的情况下执行此操作,设置archivesBaseName.

例如:

 defaultConfig {
      ....
      project.ext.set("archivesBaseName", "MyName-" + defaultConfig.versionName);

  }

输出:

MyName-1.0.12-release.apk

在你的情况下:

project.ext.set("archivesBaseName", "com.example" );
于 2015-09-08T06:59:22.807 回答
4

尝试将其放入模块的 build.gradle

applicationVariants.all { variant ->
    variant.outputs.each { output ->
        def file = output.outputFile
        def appId = android.defaultConfig.applicationId
        def fileName = appId + "-" variant.buildType.name +".apk"
        output.outputFile = new File(file.parent, fileName)
    }
}
于 2015-09-08T05:11:24.423 回答
2

你可以看到这个链接release|debug.apk或在文件浏览器中使用您想要的名称重命名您的不合逻辑的选项。

此代码可能对您有用:

buildTypes {
release {
    minifyEnabled false
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def formattedDate = new Date().format('yyyyMMddHHmmss')
            def newName = output.outputFile.name
            newName = newName.replace("app-", "$rootProject.ext.appName-") //"MyAppName" -> I set my app variables in the root project
            newName = newName.replace("-release", "-release" + formattedDate)
            //noinspection GroovyAssignabilityCheck
            output.outputFile = new File(output.outputFile.parent, newName)
        }
    }
}
    debug {
    }
}

享受你的代码:)

于 2015-09-08T05:21:47.273 回答
0

在项目的顶级目录中创建一个名为 customname.gradle 的文件。将这段代码放入其中。

android.applicationVariants.all { variant ->;
def appName
//Check if an applicationName property is supplied; if not use the name of the parent project.
if (project.hasProperty("applicationName")) {
    appName = applicationName
} else {
    appName = parent.name
}

variant.outputs.each { output ->;
    def newApkName
    //If there's no ZipAlign task it means that our artifact will be unaligned and we need to mark it as such.
    if (output.zipAlign) {
        newApkName = "${appName}-${output.baseName}-${variant.versionName}.apk"
    } else {
        newApkName = "${appName}-${output.baseName}-${variant.versionName}-unaligned.apk"
    }
    output.outputFile = new File(output.outputFile.parent, newApkName)
}}

然后在您的应用模块的 gradle 中添加此代码

apply from: "../customname.gradle"
于 2015-09-08T06:52:00.657 回答
0

这可能会对您有所帮助。此代码将创建应用程序名称,applicationId-release.apkapplicationId-debug.apk其中 applicationId 可以是您的包名称。

buildTypes {

    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def newName = output.outputFile.name
            newName = newName.replace("app-", applicationId)
            output.outputFile = new File(output.outputFile.parent, newName)
        }
    }
}
于 2017-11-14T10:18:57.170 回答