43 votes

La fusion des manifestes a échoué : uses-sdk:minSdkVersion 10 ne peut pas être inférieur à la version L déclarée dans la bibliothèque com.android.support:appcompat-v7:21.0.0-rc1

Après avoir téléchargé la version de prévisualisation L dans Android Studio, j'ai reçu l'erreur ci-dessus alors que mon projet avait minSdkVersion 19.

De plus, en définissant mindSdkVersion comme ci-dessous :

defaultConfig {
....
          minSdkVersion 'L'
....
    }

Je reçois des dizaines d'erreurs comme ci-dessous, concernant les ressources de AppCompat-v7-21 :

/home/user/workspace/projet/build/intermediates/exploded-aar/com.android.support/appcompat-v7/21.0.0-rc1/res/values-v21/values.xml
Error:Error retrieving parent for item: No resource found that matches the given name '@android:TextAppearance.Material.SearchResult.Subtitle'.

J'ai donc 2 questions :

  1. Pourquoi AS se plaint-il de minSdkVersion ? Je présume que c'est parce qu'AppCompat-v7 21 ne supporte que la version L ; mais pourquoi ? Aussi, ne supportera-t-il que la version L lorsqu'elle sera officiellement publiée à l'automne ? Parce que ce serait un problème... Ou est-ce juste une restriction temporaire pour empêcher les applications d'être publiées sur le Play Store, comme cela a été spécifié lors de la Google I/O 2014 Keynote ?
  2. Pourquoi AppCompat-v7 21 se plaint-il de ces erreurs, alors que j'ai déjà défini mindSdkVersion sur L ?

56voto

Andrew Points 1532
compileSdkVersion 'android-L'

BOOM. Fait.

DERNIÈRE ÉDITION: Depuis la version Android 5.0, ce n'est plus un problème, il suffit de cibler directement le niveau d'API 21.

Édition pour plus de clarté: En effet, comme l'a précisé David_E ci-dessous, cette solution ne fonctionne que pour la version L, si vous essayez de déployer l'application sur un appareil antérieur à L (ex <= 4.4.4), celle-ci se plaindra de OLD_SDK. Pour que l'application fonctionne avant L, vous devez toujours utiliser l'ancienne librairie de support v20 + app compat + targetVersionSdk et compileVersionSdk

dependencies {

        compile 'com.android.support:appcompat-v7:20.+'
        compile 'com.android.support:support-v4:20.+'
    }

    android {
        compileSdkVersion 20
        buildToolsVersion '20'

        defaultConfig {
            applicationId "com.example.application"
            minSdkVersion 10
            targetSdkVersion 20
            versionCode 1
            versionName "1.0"
        }
}

32voto

David_E Points 407

La réponse indiquée ici peut ne pas fonctionner correctement, car elle fera en sorte que votre application ne fonctionne que pour Android L.

Afin de conserver la compatibilité ascendante avec les anciennes versions du système d'exploitation Android, modifiez la dépendance gradle

De :

compile 'com.android.support:appcompat-v7:+'

À :

compile 'com.android.support:appcompat-v7:20.+'

Notez que l'erreur se plaint de com.android.support:appcompat-v7:21.0.0-rc1, la raison en est que l'utilisation de appcompat-v7:+ indiquera à gradle d'importer la dernière dépendance de la bibliothèque appcompat-v7, malheureusement cette dernière version ne fonctionne que pour Android L, nous devons donc pointer vers une version précédente.

En espérant que Google règle cela dans un avenir proche.

4voto

Boardy Points 5332

La manière qui a fonctionné pour moi a été d'installer la version bêta d'Android Studio (pas la version de prévisualisation, la version bêta a été lancée aujourd'hui dans le cadre de IO).

Désinstallez la version de prévisualisation et installez la version bêta, puis ouvrez votre projet. Il vous demandera d'utiliser le SDK du projet ou le SDK de Studio, utilisez le SDK d'Android Studio.

Allez dans le fichier local.properties de vos projets et assurez-vous que les barres obliques inverses () sont doublées, par exemple \.

Allez dans Structure du projet > SDK et assurez-vous que cela pointe vers le SDK Android sur mon PC, pour moi c'était C:\Program Files(x86)\Android\android-studio\SDK.

Ensuite, dans vos projets et dans les fichiers build.gradle des bibliothèques que vous avez,

compile 'com.android.support:support-v4' Changez-le en compile 'com.android.support:support-v4:20+'

Réimportez les fichiers gradle et tout est corrigé

4voto

BubbaGum Points 51

Pour forcer le travail avec une version fonctionnelle Il suffit de changer les dépendances Gradle comme ceci :

dependencies {
    compile 'com.android.support:gridlayout-v7:19.0.1'
    compile 'com.android.support:appcompat-v7:19+'
    ...
}

était :

compile 'com.android.support:appcompat-v7:+'

N.B.

J'ai mis à jour les Outils et Extensions dans le gestionnaire SDK.

après que le projet ait été cassé, je l'ai réparé comme indiqué ci-dessus.

Pour le moment, je ne mets pas à jour android L & 4.4W (assez de bugs pour aujourd'hui :-( )

2voto

user3091593 Points 21

Merci David pour ta réponse!

J'ai dû changer

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

À:

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

Et maintenant tout fonctionne parfaitement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X