Android: Как изменить конкретное имя сгенерированного файла apk в Android Studio?
по умолчанию IDE genarate apk как app-debug.apk
или app-release.apk
файл, но мне нужно создать конкретное имя Apk приложение.
Например:
Мое имя приложения iPlanter Итак, мне нужно создать iPlanter-debug.apk
или iPlanter-release.apk
вместо app-debug.apk
или app-release.apk
соответственно.
спасибо,
8 ответов
Шаг 1: Перейти к root на основной проект, под app щелкните правой кнопкой мыши на app и рефакторинг приложения в определенное имя (пример iPlanter) и нажмите ok
Шаг 2: Перейдите в файл настроек проекта, который является
содержит
include ':app'
теперь нужно заменить приложение на конкретное имя.
для Образец app заменить на iPlanter в включить ': app' это выглядит как ниже
include ':iPlanter'
затем синхронизируйте проект, после чего запустите приложение.
Наконец, приложение генерирует apk, как iPlanter-debug.apk
или iPlanter-release.apk
.
вы можете использовать это для имени приложения с текущей датой и версией
android {
def version = "2.4";
def milestone = "1";
def build = "0";
def name = getDate()+"APP NAME WHAT YOU WANT"+"v"+version
signingConfigs {
config {
….
}
}
compileSdkVersion Integer.parseInt(COMPILE_SDK)
buildToolsVersion BUILD_TOOLS_VERSION
defaultConfig {
applicationId "com.PACKAGENAME"
minSdkVersion Integer.parseInt(MIN_SDK_LIBRARY)
targetSdkVersion Integer.parseInt(TARGET_SDK)
versionCode 11
versionName "2.3"
multiDexEnabled true
}
buildTypes {
debug {
applicationVariants.all { variant ->
variant.outputs.each { output ->
def apk = output.outputFile;
def newName;
newName = apk.name.replace("-" + variant.buildType.name, "")
.replace(project.name, name);
newName = newName.replace("-", "-" + version + "-" + milestone +
"-" + build + "-");
output.outputFile = new File(apk.parentFile, newName);
}
}
}
просто добавить
archivesBaseName = "NAME_YOU_WANT"
в части android{} вашего файла gradle.
вы получите " NAME_YOU_WANT-release.apk " как имя сгенерированного файла.
попробуйте этот код:
defaultConfig{
applicationVariants.all { variant ->
changeAPKName(variant, defaultConfig)
}
}
def changeAPKName(variant, defaultConfig) {
variant.outputs.each { output ->
if (output.zipAlign) {
def file = output.outputFile
output.packageApplication.outputFile = new File(file.parent, "Your APK NAME")
}
def file = output.packageApplication.outputFile
output.packageApplication.outputFile = new File(file.parent, "Your APK NAME")
}
}
для Android Studio 3 это работает для меня:
applicationVariants.all { variant ->
variant.outputs.all { output ->
outputFileName = new File("AppName-" + variant.versionName + ".apk");
}
}
на моем ПК достаточно переименовать (через рефактор) app до нужного имени твое имя. После этого, include ':app'
в настройки.файл grandle изменен на include ':yourName'
. Однако в моем случае мне нужно закрыть / снова открыть Android Studio из-за ошибки синхронизации. В результате получаем apk что-то вроде yourName-debug.apk и yourName-release.apk.
Это поможет вам. Этот код создаст имя приложения, такое как iPlanter-release.apk или iPlanter-отладка.apk
buildTypes {
applicationVariants.all { variant ->
variant.outputs.each { output ->
project.ext { appName = 'iPlanter' }
def newName = output.outputFile.name
newName = newName.replace("app-", "$project.ext.appName-")
output.outputFile = new File(output.outputFile.parent, newName)
}
}
}
для Android Studio 3.1 это работает для меня:
android {
...............
...............
applicationVariants.all { variant ->
changeAPKName(variant, defaultConfig)
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
.................................
.................................
}
и
def changeAPKName(variant, defaultConfig) {
variant.outputs.all { output ->
outputFileName = new File("xxxxx" + variant.versionName +".apk")
}
}