tools suggestion studio sourcesets flavors debuggable configurar authorities androidmanifest android android-studio android-gradle android-5.0-lollipop

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:

  1. descomprima https://dl.dropboxusercontent.com/u/16403954/android-21.zip en sdk/platforms/
  2. cambiar build.gradle como

    compileSdkVersion 21 buildToolsVersion "20.0.0" defaultConfig { applicationId "package.name" minSdkVersion 10 targetSdkVersion 21 versionCode 1 versionName "1.0" }

  3. añadir

    <uses-sdk tools:node="replace" />

    en Manifiesto con xmlns:tools="schemas.android.com/tools" ;

  4. 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:+'' para compile ''com.android.support:support-v4:20.+'' en build.gradle . Esto evitará que gradle use v4: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