web-dev-qa-db-fra.com

Comment utiliser les outils: overrideLibrary dans un fichier build.gradle?

J'utilise les bibliothèques Leanback, qui nécessitent Android 17 ou une version ultérieure. Cependant, mon application prend en charge un minSDK de 16, je reçois donc une erreur de construction de Gradle en disant

Error:Execution failed for task ':Tasks:processPhoneDebugManifest'.
> Manifest merger failed : uses-sdk:minSdkVersion 16 cannot be smaller than version 17 declared in library /Users/mike/Projects/Android-for-dummies-v3/Tasks/build/intermediates/exploded-aar/com.Android.support/leanback-v17/21.0.2/AndroidManifest.xml
    Suggestion: use tools:overrideLibrary="Android.support.v17.leanback" to force usage

Lorsque je regarde la documentation build tools , je vois comment ajouter le marqueur overrideLibrary à mon manifeste, mais le problème est que je déclare mon minSdk dans mon fichier Gradle plutôt que dans mon manifeste.

Comment utiliser overrideLibrary lorsque le minSdk est déclaré dans build.gradle plutôt que dans AndroidManifest.xml?

257
emmby

Ouvrir Android Studio -> Ouvrir le fichier manifeste 

ajouter <uses-sdk tools:overrideLibrary="Android.support.v17.leanback"/> n'oubliez pas d'inclure aussi xmlns:tools="http://schemas.Android.com/tools", avant la balise <application>

enter image description here

495
xDragonZ

peu importe que vous déclariez votre minSdk dans build.gradle. Vous devez copier overrideLibrary dans votre AndroidManifest.xml, comme indiqué dans la documentation ici .

<manifest 
    ... >
<uses-sdk tools:overrideLibrary="com.example.lib1, com.example.lib2"/>
    ...
</manifest>

Le système ignore automatiquement la sdkVersion déclarée dans AndroidManifest.xml.

J'espère que cela résoudra votre problème.

152
icastell
<manifest xmlns:tools="http://schemas.Android.com/tools" ... >
  <uses-sdk tools:overrideLibrary="nl.innovalor.ocr, nl.innovalor.corelib" />

Je faisais face au problème du conflit entre différentes versions de min sdk . Donc, cette solution a fonctionné pour moi.

4
Kuldeep Saxena

Je viens de changer minSdkVersion="7" dans C:\MyApp\platforms\Android\CordovaLib\AndroidManifest.xml et cela a fonctionné.

Pas:

  1. Chemin: C:\MyApp\platforms\Android\CordovaLib\AndroidManifest.xml 
  2. Valeur: <uses-sdk Android:minSdkVersion="7"/> 
  3. Commande exécutée dans la nouvelle invite de commande:

    C:\MyApp>phonegap build Android --debug [phonegap] executing 'cordova build Android --debug'... [phonegap] completed 'cordova build Android --debug'

Comme la bibliothèque requiert minSdkVersion 17, vous pouvez modifier la même chose dans le fichier build.gradle (Module: Application):

defaultConfig {
        minSdkVersion 17 
        targetSdkVersion 25
}

et après cette construction, le projet ne devrait générer aucune erreur de construction.

1
Arpit Namdev

vient de changer seulement Android: minSdkVersion = "16" et son travail est parfait C:\MyApp\plates-formes\Android\CordovaLib\AndroidManifest.xml

0
BIRJA KUMAR

utiliser ce code dans le fichier manifest.xml

<uses-sdk
Android:minSdkVersion="16"
Android:maxSdkVersion="17"
tools:overrideLibrary="x"/>
0
ali bagheri