How to set up gradle and android studio to do release build?

I want to build android app and start signing it.
For that I need to have Release version of apk. Google documentation suggests only Eclipse and ant ways to have release builds: http://developer.android.com/tools/publishing/app-signing.html#releasecompile

However I cannot find how to force gradle build release version of apk. build.gradle does not give any hints either. gradlew tasks suggests, that there is no install Release configuration, but uninstall release exists:

  • Get text string from EditText?
  • Prevent network sync loop when syncing from network in Android ContentProvider
  • Crosswalk Cordova - js alert shows block characters on Chinese interface android
  • Android : java.lang.OutOfMemoryError:
  • Custom Font in Android renders differently in different APIs
  • Adding Google Play services version to your app's manifest?
  • 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
    

    My 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
        }
    }
    

    What I am missing?

    Related posts:

    Should I use PendingIntent.getService() or getBroadcast with AlarmManager?
    Could not find com.google.android.gms:play-services:7.3.0
    Resource for Android Slight Left/Right Slide action on listview
    PorterduffXfermode: Clear a section of a bitmap
    android sqlite query with multiple where
    roaming detection in android
  • Android HttpClient, DefaultHttpClient, HttpPost
  • Is it possible to mock a system service in Android
  • Using client/server certificates for two way authentication SSL socket on Android
  • Android TextView counter with Top/Down Animation
  • Using MatrixCursor and SimpleCursorAdapter in a ListView with text and images
  • Why is App not compatible with Tablets after update
  • 4 Solutions collect form web for “How to set up gradle and android studio to do release build?”

    in the latest version of android studio, you can just do:

    ./gradlew assembleRelease
    

    or aR for short. This will produce an unsigned release apk. Building a signed apk can be done similarly or you can use Build -> Generate Signed Apk in Android Studio.

    See the docs here

    Here is my build.gradle for reference:

    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. open Build Variants
    2. set debug to release
    3. shift+f10 run!!

    then, Android Studio will execute assembleRelease task and install xx-release.apk to your device.

    No need to update gradle for making release application in Android studio.If you were eclipse user then it will be so easy for you. If you are new then follow the steps

    1: Go to the “Build” at the toolbar section.
    2: Choose “Generate Signed APK…” option.
    enter image description here

    3:fill opened form and go next
    4 :if you already have .keystore or .jks then choose that file enter your password and alias name and respective password.
    5: Or don’t have .keystore or .jks file then click on Create new… button as shown on pic 1 then fill the form.enter image description here

    Above process was to make build manually. If You want android studio to automatically Signing Your App

    In Android Studio, you can configure your project to sign your release APK automatically during the build process:

    On the project browser, right click on your app and select Open Module Settings.
    On the Project Structure window, select your app’s module under Modules.
    Click on the Signing tab.
    Select your keystore file, enter a name for this signing configuration (as you may create more than one), and enter the required information.
    enter image description here
    Figure 4. Create a signing configuration in Android Studio.

    Click on the Build Types tab.
    Select the release build.
    Under Signing Config, select the signing configuration you just created.
    enter image description here
    Figure 5. Select a signing configuration in Android Studio.

    4:Most Important thing that make debuggable=false at gradle.

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

    visit for more in info developer.android.com

    To activate the installRelease task, you simply need a signingConfig. That is all.

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

    Finally, the plugin creates install/uninstall tasks for all build
    types (debug, release, test), as long as they can be installed (which
    requires signing).

    Here is what you want:

    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
    

    Here is how to obtain the installRelease task:

    Example 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
        }
      }
    }
    
    Android Babe is a Google Android Fan, All about Android Phones, Android Wear, Android Dev and Android Games Apps and so on.