title: Manifest merger failed : uses-sdk:minSdkVersion 8 cannot be smaller
body: <p>The problem is..</p>
  
  <pre><code>Error:Execution failed for task ':app:processDebugManifest'.
  </code></pre>
  
  <blockquote>
    <p>Manifest merger failed : uses-sdk:minSdkVersion 8 cannot be smaller than version L declared in library com.android.support:support-v4:21.0.0-rc1</p>
  </blockquote>
  
  <p>The code in build.gradle</p>
  
  <pre><code>   apply plugin: 'android'
  
  android {
      compileSdkVersion 19
      buildToolsVersion "20.0.0"
  
      defaultConfig {
          applicationId "com.androidexample.gcm"
          minSdkVersion 8
          targetSdkVersion 16
      }
  
      buildTypes {
          release {
              runProguard false
              proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
          }
      }
  }
  
  dependencies {
      compile 'com.android.support:support-v4:+'
      compile 'com.google.android.gms:play-services:+'
      //compile 'com.android.support:support-v4:20.0.0'
      //compile 'com.google.android.gms:play-services:5.0.77'
  
  }
  </code></pre>
  
  <p>Code in the AndroidManifest is ..</p>
  
  <pre><code> &lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.androidexample.gcm"
      android:versionCode="1"
      android:versionName="1.0" &gt;
  
      &lt;!-- GCM requires Android SDK version 2.2 (API level 8) or above. --&gt;
      &lt;uses-sdk
          android:minSdkVersion="8"
          android:targetSdkVersion="16" /&gt;
  
      &lt;!-- Main activity. --&gt;
      &lt;application
          android:name="com.androidexample.gcm.Controller"
          android:icon="@drawable/ic_launcher"
          android:label="@string/app_name" &gt;
          &lt;!-- Register Activity --&gt;
          &lt;activity
              android:name="com.androidexample.gcm.RegisterActivity"
              android:label="@string/app_name" &gt;
              &lt;intent-filter&gt;
                  &lt;action android:name="android.intent.action.MAIN" /&gt;
                  &lt;category android:name="android.intent.category.LAUNCHER" /&gt;
              &lt;/intent-filter&gt;
              &lt;intent-filter&gt;
                  &lt;action android:name="android.intent.action.VIEW" /&gt;
                  &lt;action android:name="android.intent.action.DELETE" /&gt;
                  &lt;category android:name="android.intent.category.DEFAULT" /&gt;  
                  &lt;data android:scheme="com.idrivecare.familypro" /&gt;
              &lt;/intent-filter&gt;
          &lt;/activity&gt;
  
  
          &lt;!-- Main Activity --&gt;
          &lt;activity
              android:name="com.androidexample.gcm.MainActivity"
              android:configChanges="orientation|keyboardHidden"
              android:label="@string/app_name" &gt;
          &lt;/activity&gt;
  
          &lt;receiver
              android:name="com.google.android.gcm.GCMBroadcastReceiver"
              android:permission="com.google.android.c2dm.permission.SEND" &gt;
              &lt;intent-filter&gt;
  
                  &lt;!-- Receives the actual messages. --&gt;
                  &lt;action android:name="com.google.android.c2dm.intent.RECEIVE" /&gt;
                  &lt;!-- Receives the registration id. --&gt;
                  &lt;action android:name="com.google.android.c2dm.intent.REGISTRATION" /&gt;
  
                  &lt;category android:name="com.androidexample.gcm" /&gt;
              &lt;/intent-filter&gt;
          &lt;/receiver&gt;
  
          &lt;service android:name="com.androidexample.gcm.GCMIntentService" /&gt;
          &lt;meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /&gt;
      &lt;/application&gt;
  
      &lt;!-- GCM connects to Internet Services. --&gt;
      &lt;uses-permission android:name="android.permission.INTERNET" /&gt;
  
      &lt;!-- GCM requires a Google account. --&gt;
      &lt;uses-permission android:name="android.permission.GET_ACCOUNTS" /&gt;
  
      &lt;!-- Keeps the processor from sleeping when a message is received. --&gt;
      &lt;uses-permission android:name="android.permission.WAKE_LOCK" /&gt;
  
      &lt;!-- Creates a custom permission so only this app can receive its messages. --&gt;
      &lt;permission
          android:name="com.androidexample.gcm.permission.C2D_MESSAGE"
          android:protectionLevel="signature" /&gt;
  
      &lt;uses-permission android:name="com.androidexample.gcm.permission.C2D_MESSAGE" /&gt;
  
      &lt;!-- This app has permission to register and receive data message. --&gt;
      &lt;uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /&gt;
  
      &lt;!-- Network State Permissions to detect Internet status --&gt;
      &lt;uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /&gt;
  
      &lt;!-- Permission to vibrate --&gt;
      &lt;uses-permission android:name="android.permission.VIBRATE" /&gt;
  
  &lt;/manifest&gt;
  </code></pre>
  
  <p>Thank you sir..</p>