Cómo uso herramientas: overrideLibrary en una compilación.gradle archivo?


Estoy usando las bibliotecas leanback, que requieren Android 17 o posterior. Sin embargo, mi aplicación admite un minSdk de 16, por lo que recibo un error de compilación de gradle diciendo

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

Cuando miro la documentación de build tools, veo cómo agregar el marcador overrideLibrary a mi manifiesto, pero el problema es que estoy declarando mi minSdk en mi archivo gradle en lugar de en mi manifiesto.

Cómo uso overrideLibrary cuando el minSdk se declara en build.gradle en lugar de en AndroidManifest.xml?

Author: Sergey Glotov, 2014-11-24

6 answers

Abrir Android Studio - > Abrir Archivo de manifiesto

Añadir <uses-sdk tools:overrideLibrary="android.support.v17.leanback"/> no olvides incluir xmlns:tools="http://schemas.android.com/tools" también, antes de la etiqueta <application>

introduzca la descripción de la imagen aquí

 469
Author: xDragonZ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-25 02:21:55

No importa que declares tu minSdk en build.gradle. Tienes que copiar overrideLibrary en tu AndroidManifest.xml, como se documenta aquí.

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

El sistema ignora automáticamente la versión SDK declarada en AndroidManifest.XML.

Espero que esto resuelva su problema.

 146
Author: icastell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-13 02:16:48
<manifest xmlns:tools="http://schemas.android.com/tools" ... >
  <uses-sdk tools:overrideLibrary="nl.innovalor.ocr, nl.innovalor.corelib" />

Me enfrentaba al problema del conflicto entre diferentes versiones de min sdk. Así que esta solución funcionó para mí.

 3
Author: Kuldeep Saxena,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-11 13:47:31

Como la biblioteca requiere minSdkVersion 17 entonces puede cambiar lo mismo en build.gradle (Módulo:Aplicación) archivo:

defaultConfig {
        minSdkVersion 17 
        targetSdkVersion 25
}

Y después de eso, el proyecto no debería generar ningún error de compilación.

 2
Author: Arpit Namdev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-05 07:33:19

Acabo de cambiar minSdkVersion="7" en C:\MyApp\platforms\android\CordovaLib\AndroidManifest.xml y funcionó.

Pasos:

  1. Ruta: C:\MyApp\platforms\android\CordovaLib\AndroidManifest.xml
  2. Valor: <uses-sdk android:minSdkVersion="7"/>
  3. Ejecutar el comando en el nuevo símbolo del cmd:

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

 2
Author: Manjunath Mruthyunjaya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-21 13:56:48

Utilice este código en el manifiesto.xml

<uses-sdk
android:minSdkVersion="16"
android:maxSdkVersion="17"
tools:overrideLibrary="x"/>
 0
Author: ali bagheri,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-30 07:57:00