Agregar claves de liberación en el complemento experimental de Gradle para Android

Hey estoy teniendo algunos problemas al agregar una firma de mi versión de lanzamiento variante. Actualmente estoy usando el gradle experimental 2.5 con el nuevo androide gradle plugin versión 0.1.0.

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']) } 

Mi raíz build.gradle:

 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle-experimental:0.1.0' } } allprojects { repositories { jcenter() } } 

El error que estoy consiguiendo al ejecutar. / ./gradlew assembleRelease es:

 > 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' 

¿Alguien ha tenido un problema similar con el complemento gradle experimental? La ayuda sería muy apreciada. 🙂

3 Solutions collect form web for “Agregar claves de liberación en el complemento experimental de Gradle para Android”

Esta solución funciona para mí y no requiere -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 } } } 

Sin embargo, sólo funciona si sólo tiene un signedConfig.

Debe ser capaz de agregar las claves de liberación con un script como este:

 model { android.buildTypes { release { signingConfig = $("android.signingConfigs.signed") } } android.signingConfigs { create("signed") { keyAlias = "meow" keyPassword = "**" storeFile = file("meow-key.keystore") storePassword = "**" storeType = "jks" } } } 

Actualmente parece ser un error en el complemento.
-Dorg.gradle.model.dsl=true especificar -Dorg.gradle.model.dsl=true cuando ejecute el comando gradle.

También debe tener un problema con proguard. En este caso, puede utilizar el new File("path/to/proguard-rules.pro") lugar de file('proguard-rules.pro')

La forma correcta de hacerlo con la última versión del complemento de Android ( 0.6.0-alpha3 ) es la siguiente:

 android.signingConfigs { create("release") { storeFile = file("../keys.keystore") storePassword = "st0r3pa$$" keyAlias = "SecretKey" keyPassword = "k3ypa$$" } } android.buildTypes { release { signingConfig = $.android.signingConfigs.get("release") } } 

En Gradle 2.9 que es usado por esta versión del plugin, las reglas declaradas pueden depender entre sí usando una sintaxis especial: $.<path-to-element> . El truco consiste en crear la configuración de firma como de costumbre, y luego asignarla a un campo en una regla diferente utilizando esta sintaxis. Gradle se dará cuenta de que la configuración de firma es una dependencia de entrada y le permitirá acceder a ella.

  • Android 5.x ClassNotFoundException funciona bien en 6.0+
  • Gradle: applicationVariants.all salta una variante
  • Cómo actualizar gradle en el estudio android
  • ¿Es posible tener un módulo de biblioteca java simple dependiendo del androide SDK en Android Studio
  • Cómo acceder a un buildConfigField en otro lugar dentro de un archivo de compilación de gradle
  • Dependencias no agregadas al archivo POM - Android Gradle Maven Publishing
  • ¿Cómo puedo importar com.google.android.gms. * En Android Studio usando una compilación Gradle?
  • Cuando aplico AspectJ al proyecto de Android con Androidannotations no funciona
  • No se puede conseguir que Robotium funcione en Android Studio
  • Gradle no puede compilar con java 1.8
  • Gradle define el valor de la ruta absoluta para un archivo de almacén de claves
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.