Android studio genererà il nome apk predefinito come app- (release | debug) .apk.
Come generare il nome del file apk uguale al nome del pacchetto dell'app come com.example-debug.apk
.Genera nome apk come nome del pacchetto in Android Studio
risposta
provare a mettere questo in build.gradle del modulo
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)
}
}
Grazie per l'aggiornamento suo funzionamento. – Bangaram
Questo sputa solo un APK per me e non sputa un APK per ogni variante di build. – Subby
Ovviamente no, se vuoi l'apk per un'altra variante, devi prima modificare la variante di build. Oppure usa un comando per costruire tutte le versioni. Questo codice cambia solo il nome dell'apk, niente di più. – slezadav
si può vedere questo link. o opzione illogica per rinominare il tuo release|debug.apk
con nome quello che vuoi nel browser di file.
questo codice può essere utile per voi:
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 {
}
}
godono il codice :)
Creare un file denominato customname.gradle nel livello di directory superiore del project.Put questo codice in esso.
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)
}}
Poi, nel Gradle del modulo App Aggiungi questo codice
apply from: "../customname.gradle"
È possibile farlo senza usare altri compiti, l'impostazione del archivesBaseName
.
Ad esempio:
defaultConfig {
....
project.ext.set("archivesBaseName", "MyName-" + defaultConfig.versionName);
}
uscita:
MyName-1.0.12-release.apk
Nel tuo caso:
project.ext.set("archivesBaseName", "com.example");
Potresti essere in grado di accedere al nome rootProject e usarlo in questo modo: 'project.ext.set (" archivesBaseName ", rootProject.getName() + "-" + defaultConfig.versionName); ' –
sfortunatamente non si scala quando si lavora con varianti come archivi. NomeBase è globale per tutti loro – Ewoks
Questo può aiutare. Questo codice creerà il nome dell'app come applicationId-release.apk
o applicationId-debug.apk
in cui applicationId può essere il nome del pacchetto.
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)
}
}
}
questo collegamento può aiutare http://stackoverflow.com/questions/22126299/change-apk-name-with-gradle/22126638#22126638 –
il collegamento precedente è utile –