suggestion - tools replace android debuggable
Fallo de fusiĆ³n de manifiesto: uses-sdk: minSdkVersion 14 (24)
Además de las respuestas correctas anteriores, el problema aún puede ocurrir debido al anidamiento de la biblioteca. En este caso, intente con el siguiente ejemplo:
compile ''com.android.support:support-v4:20.+''
compile (''com.github.chrisbanes.actionbarpulltorefresh:extra-abs:+'') { // example
exclude group: ''com.android.support'', module:''support-v4''
exclude group: ''com.android.support'', module:''appcompat-v7''
}
Desde que descargué el último SDK e instalé Android Studio, mi proyecto no se puede compilar. Recibo el siguiente mensaje:
Error:Gradle: Execution failed for task '':SampleProject:processProdDebugManifest''.
> Manifest merger failed : uses-sdk:minSdkVersion 14 cannot be smaller than version L declared in library com.android.support:support-v4:21.0.0-rc1
Además, en caso de que estés importando la biblioteca appcompat-v7, asegúrate de etiquetar un número de versión al final de esta manera:
compile ''com.android.support:support-v4:19.+''
compile ''com.android.support:appcompat-v7:19.+''
Después de solo cambiar la versión de soporte-v4, todavía recibí el error:
Error en la fusión de manifiestos: uses-sdk: minSdkVersion 15 no puede ser más pequeño que la versión L declarada en la biblioteca com.android.support:support-v4:21.0.0-rc1
Fue un poco confuso porque parece que v4 sigue siendo el problema, pero, de hecho, restringir la versión v7 de appcompat solucionó el problema.
Aquí está el nuevo error archivado para este code.google.com/p/android/issues/detail?id=72430
Suponiendo que está utilizando el repositorio de soporte, la solución es comentar o eliminar la línea
21.0.0-rc1 en el archivo de lista de repo de Maven local en /extras/android/m2repository/com/android/support-v4/maven-metadata.xml
Debe eliminar de la compile ''com.android.support:support-v13:+''
build.gradle compile ''com.android.support:support-v13:+''
El problema aún surge con las dependencias transitivas. Gradle ofrece una forma de forzar el uso de una versión específica de una dependencia.
Por ejemplo puedes agregar algo como:
configurations.all {
resolutionStrategy {
force ''com.android.support:support-v4:20.+''
force ''com.android.support:appcompat-v7:20.+''
}
}
a su build.gradle.
Si desea obtener más información sobre las estrategias de resolución de gradle, consulte esta guía en http://www.gradle.org/docs/current/dsl/org.gradle.api.artifacts.ResolutionStrategy.html
Encontré esto mientras leía el tema correspondiente que enlazaré code.google.com/p/android/issues/detail?id=72430
En Android Studio 1.1.0: Archivo - Estructura del proyecto - Sabores de tabulación - Seleccione la versión Min SDK que es más alta que en Manifest
En el archivo build.gradle, fue por defecto compilar ''com.android.support:support-v4:+'', de modo que cuando compile el proyecto gradle se consideraría, com.android.support:support-v4:21.0.0.0-rc1 debido a la reciente versión preliminar de la versión para desarrolladores de L.
Realice los cambios en la siguiente línea y resolverá el problema. Cambio
compile ''com.android.support:support-v4:+''
a
compile ''com.android.support:support-v4:20.+''
De manera similar, al utilizar la biblioteca de soporte de v7-appcompat, realice el cambio
compile ''com.android.support:appcompat-v7:+''
a
compile ''com.android.support:appcompat-v7:20.+''.
Gracias @Murtuza. Tu respuesta me ayudó a resolver mi problema pero en mi caso.
compile ''com.android.support:support-v13:19.+
también, junto con
compile ''com.android.support:support-v4:19.+'' compile ''com.android.support:appcompat-v7:19.+''
de compile ''com.android.support:support-v4:+'' compile ''com.android.support:support-v7:+'' compile ''com.android.support:support-v13:+''
Espero que esto pueda ayudar a alguien
Hago todas las soluciones aquí sin resultado, así que busco en otro lugar y encontré una manera de engañar al IDE, así que tienes que poner una línea en el Mainfest para hacer que el Gradle use otro diferente, el que pones en build.gradle la línea es:
<uses-sdk tools:node="replace" />
Sólo eso, y funciona.
Espero que ayude.
Intente eliminar la (s) carpeta (s) de compilación en su proyecto y vuelva a sincronizar su proyecto de Gradle para reconstruirlo. Además, como han dicho otros en este post, en lugar de hacer algo como esto:
compile ''com.android.support:support-v4:19.+''
hacer esto:
compile ''com.android.support:support-v4:19.1.0''
Lo único que me funcionó es esto:
En project.properties, cambié:
cordova.system.library.1 = com.android.support: support-v4: + to cordova.system.library.1 = com.android.support: support-v4: 20. +
No se olvide, debe editar build.gradle en la subcarpeta ''app'' de su proyecto, no en la carpeta del proyecto. He perdido un día de trabajo tratando de resolver un problema con la versión "L".
Para las personas que crean aplicaciones híbridas utilizando la CLI de cordova, este comando ayudará a:
cordova build android -- --minSdkVersion=15
Sí, utiliza dobles guiones dobles como lo viste.
Para las personas que enfrentan este problema en la versión beta de Android Studio , la respuesta aceptada no resolvió mi problema. Al importar un proyecto descargado de GitHub, tenía lo siguiente en mi archivo build.gradle de la aplicación que daba un error en cuestión:
dependencies {
compile ''com.android.support:support-v4:+''
}
Pero en mi carpeta de la biblioteca externa tengo esta carpeta:
support-v4-21.0.0-rc1 //note the 21
Resolví el problema anterior cambiando la dependencia a:
dependencies {
compile ''com.android.support:support-v4:20.+'' //20 used less than available strange but works
}
Nota: es posible que también necesite descargar un nivel de API inferior al actualmente disponible en Android Studio para algunas bibliotecas y proyectos para que esto funcione correctamente.
Para mí, el problema como este se resuelve cambiando el
minSdkVersion 14
En el archivo build.gladdle y use el que se especifica en el mensaje de error
pero el problema era
Manifest merger failed : uses-sdk:minSdkVersion 14 cannot be smaller than version 15 declared in library
Así que cambié de 14 a 15 en el archivo build.gladdle y funciona
darle una oportunidad.
También tuve el mismo problema y me ayudó el siguiente cambio:
desde:
dependencies {
compile ''com.android.support:support-v4:+''
a:
dependencies {
compile ''com.android.support:support-v4:20.0.0''
}
Tengo algunos proyectos donde prefiero apuntar a L.MR1 (SDKv22) y algunos proyectos donde prefiero KK (SDKv19). Su resultado puede ser diferente, pero esto funcionó para mí.
// Targeting L.MR1 (Android 5.1), SDK 22
android {
compileSdkVersion 22
buildToolsVersion "22"
defaultConfig {
minSdkVersion 9
targetSdkVersion 22
}
}
dependencies {
compile fileTree(dir: ''libs'', include: [''*.jar''])
// google support libraries (22)
compile ''com.android.support:support-v4:22.0.0''
compile ''com.android.support:appcompat-v7:22.0.0''
compile ''com.android.support:cardview-v7:21.0.3''
compile ''com.android.support:recyclerview-v7:21.0.3''
}
// Targeting KK (Android 4.4.x), SDK 19
android {
compileSdkVersion 19
buildToolsVersion "19.1"
defaultConfig {
minSdkVersion 9
targetSdkVersion 19
}
}
dependencies {
compile fileTree(dir: ''libs'', include: [''*.jar''])
// google libraries (19)
compile ''com.android.support:support-v4:19.1+''
compile ''com.android.support:appcompat-v7:19.1+''
compile ''com.android.support:cardview-v7:+''
compile ''com.android.support:recyclerview-v7:+''
}
Tengo la segunda solución:
- descomprima
https://dl.dropboxusercontent.com/u/16403954/android-21.zip
ensdk/platforms/
cambiar build.gradle como
compileSdkVersion 21 buildToolsVersion "20.0.0" defaultConfig { applicationId "package.name" minSdkVersion 10 targetSdkVersion 21 versionCode 1 versionName "1.0" }
añadir
<uses-sdk tools:node="replace" />
en Manifiesto con
xmlns:tools="schemas.android.com/tools"
;Vaya a
sdk/extras/android/m2repository/com/android/support/support-v4/21.0.0-rc1/
desempaquete support-v4-21.0.0-rc1.aar y edite AndroidManifest.xml como
desde
<uses-sdk
android:minSdkVersion="L"
android:targetSdkVersion="L" />
a
<uses-sdk
android:minSdkVersion="4"
android:targetSdkVersion="21" />
PS Puedes hacer esto con todas las bibliotecas de soporte que necesites.
Tienes que configurar todos los soportes y librerías appcompat con la versión 19. +
Si la recomendación de dejar la biblioteca de soporte con la versión 19. + no funciona, puede probar el siguiente consejo en su archivo AndroidManifest.
Primero agregue este código:
xmlns:tools="http://schemas.android.com/tools"
Y luego, en el nivel de aplicación (¡no dentro de la aplicación!)
<uses-sdk tools:node="replace" />
Nota: Esto se ha actualizado para reflejar el lanzamiento de API 21, Lollipop. Asegúrese de descargar el último SDK.
En uno de mis módulos tuve lo siguiente en build.gradle:
dependencies {
compile ''com.android.support:support-v4:+''
}
Cambiando esto a
dependencies {
// do not use dynamic updating.
compile ''com.android.support:support-v4:21.0.0''
}
arreglado el problema.
Asegúrese de no hacer una inclusión general de com.android.support:support-v4:+
o cualquier otra biblioteca de soporte (v7, v13, appcompat, etc.), en cualquier parte de su proyecto.
Asumiría que el problema es v4:+
recoge la versión más reciente de L candidata (21.0.0-rc1) que obviamente requiere el SDK de L.
Editar:
Si necesita usar las nuevas vistas (CardView, RecyclerView y Palette), debería funcionar lo siguiente:
compile "com.android.support:cardview-v7:21.0.0"
compile "com.android.support:recyclerview-v7:21.0.0"
compile "com.android.support:palette-v7:21.0.0"
(Crédito para EddieRingle en / androiddev - http://www.reddit.com/r/androiddev/comments/297xli/howto_use_the_v21_support_libs_on_older_versions/ )
Otra edición
¡Asegúrese de ver la respuesta de @murtuza a continuación con respecto a appcompat-v7 y upvote si le ayuda!
Resolví el problema editando la línea de abajo en build.gradle ¡ y funciona! :-)
añadiendo la versión 20. + ''
Desde
dependencies {
compile ''com.android.support:appcompat-v7:+''
}
A
dependencies {
compile ''com.android.support:appcompat-v7:20.+''
}
Solución 1:
Cambie uses-sdk por <uses-sdk tools:node="replace" />
y agregue xmlns:tools="http://schemas.android.com/tools"
en AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.demo.android"
android:versionCode="16"
android:versionName="3.3.1">
.
.
<uses-sdk tools:node="replace" />
.
.
</manifest>
Asegúrese de usar gradle 0.11 y superior para usar la fusión de Manifest.
Solución 2:
Cambie la
compile ''com.android.support:support-v4:+''
paracompile ''com.android.support:support-v4:20.+''
enbuild.gradle
. Esto evitará que gradle usev4:21.0.0
que requiere la versión L.Sin embargo, si alguna de sus dependencias externas utiliza el mismo. Probablemente tendrás que esperar a que se actualicen.
Solución 3:
Quitar / comentar
<version>21.0.0-rc1</version>
en su archivo<android-sdk>/extras/android/m2repository/com/android/support-v4/maven-metadata.xml
Repita lo mismo para el soporte-v7
<uses-sdk tools:node="replace" />
Ya no funciona.
cambiar uses-sdk
a
<uses-sdk tools:overrideLibrary="com.packagename.of.libary.with.conflict" />
y añadir
xmlns:tools="http://schemas.android.com/tools"
en el archivo AndroidManifest.xml
compile(''com.android.support:support-v4:19.1.0''){
force = true
}
Me ayudo, sacado de here