web-dev-qa-db-fra.com

Android Gradle Studio ne compile pas la version spécifiée

Je développe ce petit projet depuis quelques jours maintenant mais tout à coup aujourd'hui, Android Studio a commencé à me donner cette erreur

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

J'ai compris que c'était parce qu'il essayait de compiler la bibliothèque d'Android-L. La version que je veux compiler est l'ancienne version mais ce ne sera pas le cas. Il continue de me donner l'erreur ci-dessus, quelle que soit la version que j'entre. Voici les dépendances.

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

MISE À JOUR

Je viens d'installer Android Studio Beta et j'ai changé mes dépendances pour celle suggérée par Eugen ci-dessous. Mais la synchronisation du projet donne la même erreur quelle que soit la version d'Appcompat, supporte la version que je spécifie. Elle donne cette erreur chaque fois que je synchronise

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

Mes dépendances mises à jour

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

MISE À JOUR 2

Je ne pense pas comprendre le système de dépendances de Android Studio correctement. Je viens de supprimer à la fois la compatibilité et la prise en charge des dépendances et cela me donne toujours la même erreur. Dois-je supprimer le initialement inclus des bibliothèques de quelque part?

build.gradle

* note - J'ai à nouveau ajouté ces deux bibliothèques et essayé la synchronisation, juste au cas où. Mais pas de 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'
}

Build.gradle de niveau supérieur

// 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()
    }
}
23
Thahzan

MISE À JOUR: Trouvé le vrai correctif pour mon cas. Assurez-vous qu'aucune de vos dépendances n'inclut silencieusement support-v4 r21 en procédant ainsi dans votre build.gradle:

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

Vous pouvez ajouter le exclude à toutes les bibliothèques, puis les supprimer une par une jusqu'à ce que vous trouviez celle qui récupérait support-v4 et en vous donnant l'erreur. Et laissez exclude sur celui-là.


Un nouveau bogue a été déposé ici: https://code.google.com/p/Android/issues/detail?id=724

En supposant que vous utilisez le référentiel de support, la solution consiste à commenter ou supprimer la ligne

<version>21.0.0-rc1</version>

dans le fichier de liste de référentiel Maven local à <Android-sdk>/extras/Android/m2repository/com/Android/support-v4/maven-metadata.xml

43
TalkLittle

Avec les dernières mises à jour, en utilisant ceci:

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

ou

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

vous utilisez la bibliothèque de support dans L-preview.

Ces bibliothèques de support déclarent minSdkVersion L.

Vous devez forcer le minSdkVersion à être 'L' (consultez la doc)

En effet, ces API ne sont pas définitives. C'est un moyen d'empêcher l'installation des applications sur un appareil API 21 final ou de les publier sur le magasin à l'aide de la prise en charge lib 21-r1.

En utilisant

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

vous utilisez la "vieille" bibliothèque de support 19.1.0.

24
Gabriele Mariotti

J'ai eu le même problème qu'une de mes dépendances avait spécifié 'support-v7: +' comme dépendance. J'ai pu retrouver cela en utilisant gradle dependencies

Gradle fournit un moyen de forcer la résolution vers une version spécifique. J'ai fini par avoir ça dans mon build.grade:

compile('com.Android.support:appcompat-v7:19.1.0') {
    // really use 19.1.0 even if something else resolves higher
    force = true 
}
24
raycohen
compile('com.Android.support:support-v4:19.1.0'){
    force = true
}

Cela a fonctionné pour moi

9
For Guru

C'est exact. La nouvelle bibliothèque de support n'est pas (encore) compatible avec les anciennes versions de Android.

Changez votre gradle en:

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

J'espère que vous avez encore quelque chose comme ça:

Android {
  compileSdkVersion 19
  buildToolsVersion '19.1.0'

  defaultConfig {
    minSdkVersion 14
    targetSdkVersion 19
 }
}
1
Eugen Martynov

J'obtenais l'erreur:

L'exécution a échoué pour la tâche ': app: processDebugManifest'.

La fusion du manifeste a échoué: uses-sdk: minSdkVersion 1 ne peut pas être inférieur à la version 4 déclarée dans la bibliothèque C:\Users\Igor\AppData\Local\Android\sdk\samples\Android-21_1\legacy\ApiDemos\app\build\intermediates\exploded-aar\com.Android.support\support-v4\21.0.3\AndroidManifest.xml Suggestion: utilisez les outils: overrideLibrary = "Android.support.v4" pour forcer l'utilisation

Ensuite, je l'ai résolu en mettant ce qui suit dans mon defaultConfig bloc gradle:

minSdkVersion 15
targetSdkVersion 21
1
IgorGanapolsky

Dans Android SDK Manager installe "Android Support Repository" du groupe "extra". Cela m'aide. Lorsque j'ai ajouté "exclude group: 'com.Android.support', module: 'support-v4 '"la construction est terminée, mais d'autres erreurs se sont produites

0
mamont