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")
    }
}