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:
- La ejecución falló para la tarea ': app: shrinkReleaseMultiDexComponents'
- La aplicación se bloquea sólo en la versión de lanzamiento
- Android: varias preguntas de API de cámara
- Combinación de combinación de Android :: OnTouchListener && OnClickListener
- Proguard: IllegalArgumentException - Error inesperado al evaluar la instrucció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?
- MvvmCross MvxException "No se pudo construir e inicializar ViewModel" en la configuración RELEASE
- Android form build.xml con proguard no se construye en la versión
- Proguard hace reflexionar con la clase R en la aplicación android ya no funciona
- Cordova "release" se comporta de forma diferente a "debug" con respecto a SSL
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 { } }
- Abrir
Build Variants
- Establecer
debug
pararelease
-
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 …".
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.
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. 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. 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 } } }