Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android Studio gradle doesn't compile the specified version

Tags:

I've been developing this small project for some days now but suddenly today, Android Studio started to give me this error

Error:Execution failed for task ':app:processDebugManifest'. > Manifest merger failed : uses-sdk:minSdkVersion 14 cannot be smaller than version 14 declared in library com.android.support:support-v4:21.0.0-rc1 

I understood that it is because it's trying to compile the library of Android-L. The version I want it to compile is the old version but it won't. It keeps giving me the above error no matter which version I enter. Here is the dependencies.

dependencies {     compile fileTree(dir: 'libs', include: ['*.jar'])     compile 'com.android.support:appcompat-v7:20.+'     compile 'com.android.support:support-v4:20.+' } 

UPDATE

I just installed Android Studio Beta and changed my dependencies to the one Eugen suggested below. But syncing the project gives the same error no matter which version of appcompat, support version I specify. It gives this error every single time I sync

uses-sdk:minSdkVersion 14 cannot be smaller than version L declared in library com.android.support:support-v4:21.0.0-rc1 

My updated dependencies

dependencies {     compile fileTree(dir: 'libs', include: ['*.jar'])     compile 'com.android.support:appcompat-v7:19.+'     compile 'com.android.support:support-v4:19.+' } 

UPDATE 2

I don't think I understand the dependencies system of Android Studio correctly. I just removed both the appcompat and support from the dependencies and it still gives me the same error. Do I have to remove the initially included libraries from somewhere?

build.gradle

*note - I added those two libraries back in again and tried syncing, just in case. But no chenges.

apply plugin: 'android'  android {     compileSdkVersion 19     buildToolsVersion "19.1.0"      defaultConfig {         applicationId "taz.starz.footynews"         minSdkVersion 14         targetSdkVersion 19         versionCode 1         versionName "1.0"     }     buildTypes {         release {             runProguard false             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'         }     } }  dependencies {     compile fileTree(dir: 'libs', include: ['*.jar'])     compile 'com.android.support:appcompat-v7:19.+'     compile 'com.android.support:support-v4:19.+'     compile project(':ParallaxScroll')     compile files('src/main/libs/Header2ActionBar-0.2.1.jar')     compile 'com.arasthel:gnavdrawer-library:+'     compile 'com.koushikdutta.ion:ion:1.2.4' } 

Top level build.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript {     repositories {         mavenCentral()     }     dependencies {         classpath 'com.android.tools.build:gradle:0.12.+'     } }  allprojects {     repositories {         mavenCentral()     } } 
like image 313
Thahzan Avatar asked Jun 27 '14 04:06

Thahzan


People also ask

Which Gradle version should I use?

If you are using Gradle for Android, you need to move to version 3.3 or higher of both the Android Gradle Plugin and Android Studio.

How do I revert to an older version of Android Studio?

Currently there is no direct way with which a downgrade can be done. I managed to do the downgrade by downloading Android Studio 3.0. 1 from here and then running the installer. It will prompt whether to uninstall previous version, and when you allow and proceed, it will remove 3.1 and install 3.0.


2 Answers

UPDATE: Found the real fix for my case. Make sure none of your dependencies are silently including support-v4 r21 by doing this in your build.gradle:

compile("com.blahblah:blah:123") {     exclude group: 'com.android.support', module:'support-v4' } 

You can add the exclude to all libraries, then remove one-by-one until you figure out which one was pulling in support-v4 and giving you the error. And leave exclude on that one.


There is a new bug filed here: https://code.google.com/p/android/issues/detail?id=72430

Assuming you are using the Support Repository, the workaround is to comment or remove the line

<version>21.0.0-rc1</version> 

in the local Maven repo listing file at <android-sdk>/extras/android/m2repository/com/android/support-v4/maven-metadata.xml

like image 122
TalkLittle Avatar answered Feb 01 '23 15:02

TalkLittle


With the last updates, using this:

compile 'com.android.support:support-v4:20.+' 

or

compile 'com.android.support:support-v4:+' 

you are using the support lib in L-preview.

These support libs are declaring minSdkVersion L.

You have to force the minSdkVersion to be 'L' (check the doc)

This is because these APIs are not final. It is a way to prevent installing the apps on a final API 21 device or publishing it on the store using support lib 21-r1.

Using

compile 'com.android.support:support-v4:19.1.0' 

you are using the "old" support library 19.1.0.

like image 22
Gabriele Mariotti Avatar answered Feb 01 '23 15:02

Gabriele Mariotti