デフォルトではIDE app-debug.apk
やapp-release.apk
ファイルのようなapkを生成しますが、アプリのApkの特定の名前を生成する必要があります。
例:私のアプリケーション名はiPlanterですので、それぞれiPlanter-debug.apk
やiPlanter-release.apk
の代わりにapp-debug.apk
またはapp-release.apk
を生成する必要があります。
おかげで、
ステップ1:メインプロジェクトのrootに移動します。app、appを右クリックして、アプリを特定の名前にリファクタリングします(example iPlanter)およびOKを押します
ステップ2:setting.gradle
fileのプロジェクト設定ファイルに移動
setting.gradle
ファイルには
include ':app'
ここで、特定の名前でアプリを置き換える必要があります。
include ':app'でiPlanterに置き換えるアプリの例は以下のようになります
include ':iPlanter'
次にプロジェクトを同期し、その後アプリケーションを実行します。最後に、アプリはiPlanter-debug.apk
またはiPlanter-release.apk
ファイルのようなapkを生成します。
追加するだけ
archivesBaseName = "NAME_YOU_WANT"
gradleファイルのAndroid {}部分にあります。
生成されたファイルの名前として「NAME_YOU_WANT-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);
}
}
}
このコードを試してください:
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")
}
}
アプリレベルのgradleに次の1行のコードを追加するだけです。
archivesBaseName = "NAME_YOU_WANT"
defaultConfig {
applicationId "com.PACKAGENAME"
minSdkVersion Integer.parseInt(MIN_SDK_LIBRARY)
targetSdkVersion Integer.parseInt(TARGET_SDK)
versionCode 11
versionName "2.3"
multiDexEnabled true
archivesBaseName = "NAME_YOU_WANT"
}
archivesBaseName = "NAME_YOU_WANT" + versionName
defaultConfig {
applicationId "com.PACKAGENAME"
minSdkVersion Integer.parseInt(MIN_SDK_LIBRARY)
targetSdkVersion Integer.parseInt(TARGET_SDK)
versionCode 11
versionName "2.3"
multiDexEnabled true
archivesBaseName = "NAME_YOU_WANT" + versionName
}
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")
}
}
Android Studio 3の場合、これは私のために機能します:
applicationVariants.all { variant ->
variant.outputs.all { output ->
outputFileName = new File("AppName-" + variant.versionName + ".apk");
}
}
私のPCでは、(リファクタリングにより)appを目的の名前yourNameに変更するだけで十分です。その後、setting.grandleファイルのinclude ':app'
はinclude ':yourName'
に変更されます。ただし、私の場合、同期エラーのためAndroid Studioを閉じる/再オープンする必要があります。その結果、apkyourName-debug。 apkおよびyourName-release.apk。
これはあなたを助けます。このコードは、iPlanter-release.apkやiPlanter-debug.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)
}
}
}