Cómo configurar gradle y android studio para hacer la compilación de liberación?

Quiero crear una aplicación para Android y comenzar a firmarla. Para eso necesito tener la versión Release de apk. La documentación de Google sugiere que sólo Eclipse y ant maneras de tener compilaciones de lanzamiento: http://developer.android.com/tools/publishing/app-signing.html#releasecompile

Sin embargo, no puedo encontrar cómo forzar gradle build versión de lanzamiento de apk. build.gradle tampoco da ningún indicio. gradlew tasks sugiere, que no hay instalación de la versión de configuración, pero existe una versión de desinstalación:

 Install tasks ------------- installDebug - Installs the Debug build installTest - Installs the Test build for the Debug build uninstallAll - Uninstall all applications. uninstallDebug - Uninstalls the Debug build uninstallRelease - Uninstalls the Release build uninstallTest - Uninstalls the Test build for the Debug build 

Mi build.gradle :

 buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.5.+' } } apply plugin: 'android' repositories { mavenCentral() } dependencies { compile 'com.android.support:support-v4:13.0.+' compile files('libs/android-support-v4.jar') compile project(":libraries:ActionBarSherlock") compile project(":libraries:CollabsibleSearchMenu") } android { compileSdkVersion 18 buildToolsVersion "18.0.1" defaultConfig { minSdkVersion 8 targetSdkVersion 16 } } 

Lo que me falta?

En la última versión de android studio, sólo puede hacer:

 ./gradlew assembleRelease 

O aR para abreviar. Esto producirá un apk de liberación sin firmar. La construcción de un apk firmado se puede hacer de forma similar o puede utilizar Build -> Generate Signed Apk en Android Studio.

Ver los documentos aquí

Aquí está mi build.gradle para referencia:

 buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.5.+' } } apply plugin: 'android' dependencies { compile fileTree(dir: 'libs', include: '*.jar') } android { compileSdkVersion 17 buildToolsVersion "17.0.0" sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } // Move the tests to tests/java, tests/res, etc... instrumentTest.setRoot('tests') // Move the build types to build-types/<type> // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ... // This moves them out of them default location under src/<type>/... which would // conflict with src/ being used by the main source set. // Adding new build types or product flavors should be accompanied // by a similar customization. debug.setRoot('build-types/debug') release.setRoot('build-types/release') } buildTypes { release { } } 
  1. Abrir Build Variants
  2. Establecer debug para release
  3. shift+f10 ejecutar !!

Entonces, Android Studio ejecutará la tarea assembleRelease e instalará xx-release.apk en su dispositivo.

No hay necesidad de actualizar gradle para hacer la aplicación de liberación en el estudio de Android. Si usted era usuario de eclipse, entonces será tan fácil para usted. Si eres nuevo, sigue los pasos

1: Vaya a la "Build" en la sección de la barra de herramientas. 2: Seleccione la opción "Generar Firmado APK …". Introduzca aquí la descripción de la imagen

3: llenar el formulario abierto e ir 4 siguiente: si ya tiene .keystore o .jks luego elija ese archivo introduzca su contraseña y nombre de alias y contraseña respectiva. 5: O no tiene el archivo .keystore o .jks y luego haga clic en Crear nuevo … como se muestra en la imagen 1 y luego rellene el formulario. Introduzca aquí la descripción de la imagen

El proceso anterior era hacer la compilación manualmente. Si quieres que android studio automáticamente firme tu aplicación

En Android Studio, puede configurar su proyecto para que firme su APK de publicación automáticamente durante el proceso de creación:

En el navegador del proyecto, haga clic con el botón derecho en su aplicación y seleccione Abrir configuración del módulo. En la ventana Estructura del proyecto, seleccione el módulo de su aplicación en Módulos. Haga clic en la pestaña Firma. Seleccione su archivo de almacén de claves, ingrese un nombre para esta configuración de firma (como puede crear más de una) e ingrese la información requerida. Introduzca aquí la descripción de la imagen Figura 4. Cree una configuración de firma en Android Studio.

Haga clic en la pestaña Tipos de construcción. Seleccione la versión de lanzamiento. En Configuración de firma, seleccione la configuración de firma que acaba de crear. Introduzca aquí la descripción de la imagen Figura 5. Seleccione una configuración de firma en Android Studio.

4: Lo más importante que hacer debuggable = false en gradle.

  buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard- android.txt'), 'proguard-rules.txt' debuggable false jniDebuggable false renderscriptDebuggable false zipAlignEnabled true } } 

Visita para más información en developer.android.com

Para activar la tarea installRelease , simplemente necesita un signingConfig . Eso es todo.

Desde http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Android-tasks :

Finalmente, el complemento crea tareas de instalación / desinstalación para todos los tipos de compilación (depuración, liberación, prueba), siempre y cuando se puedan instalar (lo que requiere la firma).

Esto es lo que quieres:

 Install tasks ------------- installDebug - Installs the Debug build installDebugTest - Installs the Test build for the Debug build installRelease - Installs the Release build uninstallAll - Uninstall all applications. uninstallDebug - Uninstalls the Debug build uninstallDebugTest - Uninstalls the Test build for the Debug build uninstallRelease - Uninstalls the Release build <--- release 

Aquí es cómo obtener la tarea installRelease :

Ejemplo build.gradle :

 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.2.3' } } apply plugin: 'com.android.application' android { compileSdkVersion 22 buildToolsVersion '22.0.1' defaultConfig { applicationId 'demo' minSdkVersion 15 targetSdkVersion 22 versionCode 1 versionName '1.0' } signingConfigs { release { storeFile <file> storePassword <password> keyAlias <alias> keyPassword <password> } } buildTypes { release { signingConfig signingConfigs.release } } } 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.