在 Android 的实验性 Gradle 插件中添加发布密钥 [英] Adding release keys in the experimental Gradle plugin for Android
问题描述
嘿,我在添加签名我的发布版本变体时遇到了一些问题.目前我正在使用实验性的 gradle 2.5 和新的 android gradle 插件版本 0.1.0.
Hey I am having some issues adding a signing my release build variant. Currently I am using the experimental gradle 2.5 with the new android gradle plugin version 0.1.0.
build.gradle:
build.gradle:
apply plugin: 'com.android.model.application'
model {
android {
compileSdkVersion = 15
buildToolsVersion = "22.0.1"
defaultConfig.with {
applicationId = "com.testcom.test"
minSdkVersion.apiLevel = 14
targetSdkVersion.apiLevel = 14
versionCode = 1
versionName = "1.0"
}
compileOptions.with {
sourceCompatibility JavaVersion.VERSION_1_6
targetCompatibility JavaVersion.VERSION_1_6
}
}
android.ndk {
...
}
android.signingConfigs {
signed {
keyAlias = "meow"
keyPassword = "**"
storeFile = file("meow-key.keystore")
storePassword = "**"
}
}
android.buildTypes {
release {
isMinifyEnabled = false
proguardFiles += file('proguard-rules.pro')
signingConfig = signingConfigs.signed
}
debug {
isDebuggable = true
isJniDebuggable = true
}
}
// You can modify the NDK configuration for each variant.
components.android {
binaries.afterEach { binary ->
binary.mergedNdkConfig.cppFlags.add(
"-DVARIANT=\"" + binary.name + "\"")
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
我的根 build.gradle:
My root build.gradle:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle-experimental:0.1.0'
}
}
allprojects {
repositories {
jcenter()
}
}
我在运行 ./gradlew assembleRelease
时遇到的错误是:
The error that I am getting when running ./gradlew assembleRelease
is:
> Exception thrown while executing model rule: model.android.buildTypes > named(release)
> Attempt to read a write only view of model of type 'java.lang.Object' given to rule 'model.android.buildTypes'
有没有人对实验性的 gradle 插件有类似的问题?帮助将不胜感激.:)
Has anyone had a similar issue with the experimental gradle plugin? Help would be greatly appreciated. :)
推荐答案
这个解决方法对我有用,不需要 -Dorg.gradle.model.dsl=true
This workaround works for me and does not require -Dorg.gradle.model.dsl=true
model {
def signConf
android.buildTypes {
release {
signingConfig = signConf
}
}
android.signingConfigs {
create("signed") {
keyAlias = "meow"
keyPassword = "**"
storeFile = file("meow-key.keystore")
storePassword = "**"
storeType = "jks"
signConf = it
}
}
}
但是,它仅在您只有一个签名配置时才有效.
However, it only works if you only have one signingConfig.
这篇关于在 Android 的实验性 Gradle 插件中添加发布密钥的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!