android - online - ¿Cómo uso herramientas: overrideLibrary en un archivo build.gradle?
como descargar android studio (8)
Abra Android Studio -> Abrir archivo de manifiesto
agregue
<uses-sdk tools:overrideLibrary="android.support.v17.leanback"/>
no olvide incluir
xmlns:tools="http://schemas.android.com/tools"
también, antes de la
<application>
etiqueta
Estoy usando las bibliotecas leanback, que requieren Android 17 o posterior. Sin embargo, mi aplicación admite un minSDK de 16, así 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 las herramientas de compilación
, 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?
Acabo de cambiar
minSdkVersion="7"
en
C:/MyApp/platforms/android/CordovaLib/AndroidManifest.xml
y funcionó.
Pasos:
-
Ruta:
C:/MyApp/platforms/android/CordovaLib/AndroidManifest.xml
-
Valor:
<uses-sdk android:minSdkVersion="7"/>
-
Comando Ran en el nuevo indicador de cmd:
C:/MyApp>phonegap build android --debug [phonegap] executing ''cordova build android --debug''... [phonegap] completed ''cordova build android --debug''
Como la biblioteca requiere
minSdkVersion 17
, puede cambiar lo mismo en el
build.gradle
(Módulo: Aplicación):
defaultConfig {
minSdkVersion 17
targetSdkVersion 25
}
y después de esa construcción, el proyecto no debería arrojar ningún error de construcción.
Como soulution para todas las bibliotecas, podemos hacer coincidir la versión SDK de ellas para que no ocurra ningún evento inesperado
subprojects {
afterEvaluate {project ->
if (project.hasProperty("android")) {
android {
compileSdkVersion 28
buildToolsVersion ''28.0.3''
defaultConfig {
//It''s kinda tricking android studio but anyway it works
minSdkVersion 17
}
}
}
if (project.hasProperty("dependencies")) {
dependencies {
implementation ''com.android.support:support-core-utils:28.0.0''
implementation ''com.android.support:appcompat-v7:28.0.0''
implementation ''com.google.android.gms:play-services-base:16.1.0''
}
}
}
}
Elimine las bibliotecas que no usa en su proyecto (gms) y asegúrese de que la versión SDK coincida con los datos de nivel de aplicación de Gradle
acaba de cambiar solo android: minSdkVersion = "16" y funciona perfectamente C: / MyApp / plataformas / android / CordovaLib / AndroidManifest.xml
no importa que declares tu minSdk en build.gradle.
overrideLibrary
copiar
overrideLibrary
en su
AndroidManifest.xml
, como se documenta
aquí
.
<manifest
... >
<uses-sdk tools:overrideLibrary="com.example.lib1, com.example.lib2"/>
...
</manifest>
El sistema ignora automáticamente la sdkVersion declarada en AndroidManifest.xml.
Espero que esto resuelva tu problema.
use este código en manifest.xml
<uses-sdk
android:minSdkVersion="16"
android:maxSdkVersion="17"
tools:overrideLibrary="x"/>
<manifest xmlns:tools="http://schemas.android.com/tools" ... >
<uses-sdk tools:overrideLibrary="nl.innovalor.ocr, nl.innovalor.corelib" />
Estaba enfrentando el problema del conflicto entre diferentes versiones de min sdk. Entonces esta solución funcionó para mí.