2016-07-04 50 views
1

以下構建腳本生成三個APK,但似乎沒有包含該應用程序的名稱。Gradle生成的APK名稱始終有「應用程序」,而不是我的應用程序名稱

buildTypes { 
    release { 
    minifyEnabled false 
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 

    applicationVariants.all { variant -> 
     appendVersionNameVersionCode(variant, defaultConfig) 
    } 
    } 
} 

def appendVersionNameVersionCode(variant, defaultConfig) { 
    variant.outputs.each { output -> 
    if (output.zipAlign) { 
     def file = output.outputFile 
     def fileName = file.name.replace(".apk", "-" + defaultConfig.versionName + "-" + defaultConfig.versionCode + ".apk") 
     output.outputFile = new File(file.parent, fileName) 
    } 

    def file = output.packageApplication.outputFile 
    def fileName = file.name.replace(".apk", "-" + defaultConfig.versionName + "-" + defaultConfig.versionCode + ".apk") 
    output.packageApplication.outputFile = new File(file.parent, fileName) 
    } 
} 

這產生:

app-development-release-null-1.apk 
app-live-release-null-1.apk 

如何刪除「空」,並與我的應用程序的實際名稱取代「應用程​​序」?

更新
我加入一個對的versionName的gradle該文件的頂部固定空。出於某種原因,它丟失了,但仍然無法修復「應用」字符串,並將其替換爲我的應用名稱。

+0

看到這個https://www.jayway.com/2015/03/13/producin g-better-named-android-apks-with-gradle /它可以幫助你 –

回答

0

settings.gradle:

rootProject.name = 'appName' 
0

這裏是我的方式,這應該給你一些提示。

root build.gradle添加應用程序名稱:

buildscript { 
    repositories { 
    jcenter() 
    } 
    dependencies { 
    classpath 'com.android.tools.build:gradle:2.1.2' 
    // other class path. 

    // NOTE: Do not place your application dependencies here; they belong 
    // in the individual module build.gradle files 
    } 
} 

allprojects { 
    repositories { 
    jcenter() 
    mavenCentral() 
    } 

ext { 
    androidApplicationId = 'com.sample.myproject' 
    androidVersionCode = 1 
    androidVersionName = "1.0" 
    androidAppName= 'myproject' 
    } 
} 

然後在應用project build gradle,加def baseName

android { 

    compileSdkVersion 23 
    buildToolsVersion "23.0.3" 

    defaultConfig { 
    minSdkVersion 15 
    targetSdkVersion 23 
    applicationId globalConfiguration.getAt("androidApplicationId") 
    versionCode globalConfiguration.getAt("androidVersionCode") 
    versionName globalConfiguration.getAt("androidVersionName") 

    def baseName = globalConfiguration.getAt("androidAppName") 
    project.ext.set("archivesBaseName", baseName + "-" + defaultConfig.versionName); 
    } 
... 

你將得到一個生成APK使用的應用程序名稱是這樣的:

myproject-1.0-debug.apk 
相關問題