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.

  • Capacidad para resolver dependencias de módulos dinámicamente basadas en la versión
  • Android Studio: Añadir jar como biblioteca?
  • Se han encontrado problemas al cargar complementos en Android Studio
  • Causa de "Esta aplicación contiene código que intenta omitir las protecciones de seguridad de Android"
  • ¿Cómo configurar PROGUARD para el procesador Jackson JSON?
  • ¿Cómo puedo mantener separadas mis bibliotecas de pruebas de Android de las bibliotecas de aplicaciones de Android Studio?
  • Error de ejecución de Gradle en Android Studio (Ubuntu)
  • Android Studio cómo ejecutar gradle sync manualmente?
  • Muchos módulos pequeños, o pocos módulos grandes para el mejor rendimiento de la construcción?
  • Actualización del proyecto a Android Studio 1.0 (problemas de Gradle)
  • La ejecución de instrumentación falló debido a 'android.content.res.Resources $ NotFoundException'
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.