Gradle build installRelease tarea falta en el proyecto de Android

Gradle parece haber perdido un tipo de construcción en un proyecto en el que estoy trabajando. Puedo recrear un problema mínimo como sigue. Tengo los siguientes archivos:

build.gradle local.properties src/main/AndroidManifest.xml 

build.gradle:

 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:+' } } apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { minSdkVersion 1 targetSdkVersion 23 } buildTypes { debug { } release { } } } 

local.properties:

 sdk.dir=/path/to/android-sdk-linux 

src / main / AndroidManifest.xml:

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="example"/> 

Esperaría que Gradle genere tareas installDebug e installRelease , ya que defino debug y release como buildTypes . Sin embargo, este no es el caso. El comando gradle tasks produce:

 :tasks ------------------------------------------------------------ All tasks runnable from root project ------------------------------------------------------------ ... Install tasks ------------- installDebug - Installs the Debug build. installDebugAndroidTest - Installs the android (on device) tests for the Debug build. uninstallAll - Uninstall all applications. uninstallDebug - Uninstalls the Debug build. uninstallDebugAndroidTest - Uninstalls the android (on device) tests for the Debug build. uninstallRelease - Uninstalls the Release build. Verification tasks ------------------ ... 

¿Qué va mal? ¿Por qué no installRelease disponible la tarea installRelease ?

Para la liberación primero debe crear keystore en el proyecto raíz. Y usted necesita proporcionar esos detalles en build.gradle.

Puede crear dos signingConfigs debug & release ambos si lo desea.

Al fin en el enlace buildTypes a eso.

 android { signingConfigs { debug { keyAlias 'alias' keyPassword 'password' storeFile file('../xyz.jks') storePassword 'password' } } compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { minSdkVersion 1 targetSdkVersion 23 } buildTypes { debug { signingConfig signingConfigs.debug } release { signingConfig signingConfigs.debug } } 

Entonces installRelease también estará disponible en gradle Tarea

Espero que esto sea útil para usted.

Para un caso de borde cuando no vas a publicar la aplicación (prueba de un apk ofuscado, por ejemplo), puedes omitir la firma con la clave de producción y hacer aún más simple:

 android { signingConfigs { debug {} } buildTypes { debug { signingConfig signingConfigs.debug } release { signingConfig signingConfigs.debug } } 
  • ¿Cómo excluir archivos de recursos con Gradle y Android Studio?
  • Gradle no pudo encontrar com.android.databinding: dataBinder: 1.0-rc0
  • Android Studio Gradle androidTest vs instrumentTest
  • Error: org.gradle.api.internal.changedetection.state
  • Error de sincronización gradle de estudio de android
  • ButterKnife error: no se puede encontrar el método de símbolo findRequiredViewAsType
  • Android Studio no puede resolver el error ': app: preDexDebug'
  • Android studio dice "Empty Test Suite" para AndroidTestCase
  • Gradle - recopilación de módulos selectivos (reutilización jar de lo contrario)
  • No deje de generar gradle si una prueba falla con el gradle-android-test-plugin
  • cadenas personalizadas para debug buildType
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.