我有 assembleRelease,它可以工作,还有 assembleDebug 和 installDebug。
这是我的 build.gradle 中的 block ,我认为它会让任务显示出来,但列表仍然没有它。切换构建变体对出现的 gradle 任务没有任何影响。
有什么想法吗?
谢谢!
编辑 1 - 我的顶级 build.gradle 文件(“项目:主干”)包含
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.0.0'
}
}
allprojects {
repositories {
jcenter()
}
}
dependencies {
}
我的应用级build.bradle文件是
import java.util.regex.Pattern
apply plugin: 'com.android.application'
android {
compileSdkVersion 19
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.xyz"
minSdkVersion 16
targetSdkVersion 17
}
dependencies {
compile "com.google.android.gms:play-services:3.1.+"
compile "ch.acra:acra:4.5.0"
}
signingConfigs {
release {
storeFile file('redact')
keyAlias 'asdf'
storePassword System.getenv("ANDROIDKEYPW")
keyPassword System.getenv("ANDROIDKEYPW")
}
debug {
keyAlias 'asdf'
storeFile file('redact')
storePassword System.getenv("ANDROIDKEYPW")
keyPassword System.getenv("ANDROIDKEYPW")
}
}
buildTypes {
release {
minifyEnabled true
debuggable false
signingConfig signingConfigs.release
//proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
debug {
debuggable true
}
}
productFlavors {
}
}
task incrementVersionCode << {
println(":incrementVersionCode - Incrementing Version Code...")
def manifestFile = file("src/main/AndroidManifest.xml")
def patternVersionCode = Pattern.compile("versionCode=\"(\\d+)\"")
def manifestText = manifestFile.getText()
def matcherVersionCode = patternVersionCode.matcher(manifestText)
matcherVersionCode.find()
def mVersionCode = Integer.parseInt(matcherVersionCode.group(1))
def mNextVersionCode = mVersionCode + 1
def manifestContent = matcherVersionCode.replaceAll("versionCode=\"" + mNextVersionCode + "\"")
println(":incrementVersionCode - current versionCode=" + mVersionCode);
println(":incrementVersionCode - next versionCode=" + mNextVersionCode);
manifestFile.write(manifestContent)
}
task incrementVersionName << {
println(":incrementVersionName - Incrementing Version Name...")
def manifestFile = file("src/main/AndroidManifest.xml")
def patternVersionNumber = Pattern.compile("versionName=\"(\\d+)\\.(\\d+)\\.(\\d+)\"")
def manifestText = manifestFile.getText()
def matcherVersionNumber = patternVersionNumber.matcher(manifestText)
matcherVersionNumber.find()
def majorVersion = Integer.parseInt(matcherVersionNumber.group(1))
def minorVersion = Integer.parseInt(matcherVersionNumber.group(2))
def pointVersion = Integer.parseInt(matcherVersionNumber.group(3))
def mVersionName = majorVersion + "." + minorVersion + "." + pointVersion
def mNextVersionName = majorVersion + "." + minorVersion + "." + (pointVersion + 1)
def manifestContent = matcherVersionNumber.replaceAll("versionName=\"" + mNextVersionName + "\"")
println(":incrementVersionName - current versionName=" + mVersionName);
println(":incrementVersionName - new versionName=" + mNextVersionName);
manifestFile.write(manifestContent)
}
task release << {
println(":release - Build and Version Increment")
}
task debug << {
println(":debug - Build")
}
incrementVersionName.mustRunAfter build
incrementVersionCode.mustRunAfter build
assembleRelease {}.dependsOn incrementVersionCode
assembleRelease {}.dependsOn incrementVersionName
dependencies {
}
最佳答案
添加signingConfig signingConfigs.release
给你的release
构建类型:
buildTypes {
release {
minifyEnabled true
debuggable false
signingConfig signingConfigs.release
}
// other good stuff here
}
你的 release
signingConfigs
内部关闭创建一个命名的签名配置。然而,release
作为名称不会导致它自动被 release
使用构建类型。您可以将签名配置命名为 gregRocks
, 然后使用 signingConfig signingConfigs.gregRocks
在release
构建类型,并得到相同的结果。
关于android - 无法让 installRelease gradle 任务显示在 Android Studio 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31297492/