我做了一些更改以获得不同的名称,而不是 android-debug.apk ,这是在构建后自动生成的。但是我所做的改变似乎没有奏效。这是我创建android平台后生成的 build.gradle 文件。请检查并告诉我它为什么不起作用。我在命令提示符下运行所有这些不在android studio / eclipse中。
if (cdvReleaseSigningPropertiesFile) {
signingConfigs {
release {
// These must be set or Gradle will complain (even if they are overridden).
keyAlias = ""
keyPassword = "__unset" // And these must be set to non-empty in order to have the signing step added to the task graph.
storeFile = null
storePassword = "__unset"
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig getSigningConfig()
applicationVariants.all { variant ->
variant.outputs.each { output ->
def date = new Date();
def formattedDate = date.format('yyyyMMddHHmmss')
output.outputFile = new File(output.outputFile.parent,
output.outputFile.name.replace("-release", "-" + formattedDate)
//for Debug use output.outputFile = new File(output.outputFile.parent,
// output.outputFile.name.replace("-debug", "-" + formattedDate)
)
}
}
}
}
addSigningProps(cdvReleaseSigningPropertiesFile, signingConfigs.release)
}
if (cdvDebugSigningPropertiesFile) {
addSigningProps(cdvDebugSigningPropertiesFile, signingConfigs.debug)
}
}
在我对 buildType 进行更改之前,就像这样。
buildTypes {
release {
signingConfig signingConfigs.release
}
}
答案 0 :(得分:1)
我今天想出了一个答案。它似乎像我预期的那样运作良好。我所做的改变将在下面分享:
1)我必须从 build.gradle 文件中省略或删除此特定会话
if (cdvReleaseSigningPropertiesFile) {
signingConfigs {
release {
// These must be set or Gradle will complain (even if they are overridden).
keyAlias = ""
keyPassword = "__unset" // And these must be set to non-empty in order to have the signing step added to the task graph.
storeFile = null
storePassword = "__unset"
}
}
addSigningProps(cdvReleaseSigningPropertiesFile, signingConfigs.release)
2)在 buildTypes 中,根据调试或发布方法进行更改。在这里,我对两者都进行了修改,得到了我期望的答案。这是我的 buildTypes 。
buildTypes {
debug(or release){
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
applicationVariants.all { variant ->
variant.outputs.each { output ->
project.ext { appName = 'YourName' }
def newName = output.outputFile.name.replace("android", "$project.ext.appName-")
output.outputFile = new File(output.outputFile.parent, newName)
}
}
}
}
这将输出为 YourName-debug.apk或YourName-release-unsigned.apk
3)要完全更改名称,您必须将另一行替换为另一行。
project.ext {appName ='YourName'}
def newName = output.outputFile.name.replace(“android”,“$ project.ext.appName - ”)替换为
def newName = output.outputFile.name.replace(“android-release-unsigned”,“$ project.ext.appName - ”+“您想要的任何名称”) 或用于调试
def newName = output.outputFile.name.replace(“android-debug”,“$ project.ext.appName - ”+“您想要的任何名称”)
NOTE-1 :通过更改整个名称,我遇到的问题是不会在行中生成apk /位置 内置以下apk(s): 即可。此行将为空,但您的apk将生成并且文件位置相同,如我的( platforms / android / build / outputs / apk / YourName-whatevernameyouwanted.apk )。
NOTE-2 :我正在使用命令提示符来构建这些内容。对 build.gradle 文件进行更改后,您只需将其保存,这将反映在命令提示符中。它不像 android studio / eclipse ,当您编辑 build.gradle 文件时,您必须再次重新同步该文件。