studio - flavors android gradle
Android Studio gradle no compila la versiĆ³n especificada (7)
Con las últimas actualizaciones, usando esto:
compile ''com.android.support:support-v4:20.+''
o
compile ''com.android.support:support-v4:+''
está utilizando la lib de soporte en la vista previa L
Estas minSdkVersion L
soporte están declarando minSdkVersion L
Tienes que forzar la minSdkVersion
para que sea ''L'' (consulta el documento)
Esto se debe a que estas API no son definitivas. Es una forma de evitar la instalación de aplicaciones en un dispositivo API 21 final o su publicación en la tienda utilizando support lib 21-r1.
Utilizando
compile ''com.android.support:support-v4:19.1.0''
está utilizando la biblioteca de soporte "anterior" 19.1.0.
He estado desarrollando este pequeño proyecto durante algunos días, pero de repente hoy, Android Studio comenzó a darme este error
Error:Execution failed for task '':app:processDebugManifest''.
> Manifest merger failed : uses-sdk:minSdkVersion 14 cannot be smaller than version 14 declared in library com.android.support:support-v4:21.0.0-rc1
Entendí que es porque está intentando compilar la biblioteca de Android-L. La versión que quiero que compile es la versión anterior pero no lo hará. Me sigue dando el error anterior sin importar en qué versión ingrese. Aquí están las dependencias.
dependencies {
compile fileTree(dir: ''libs'', include: [''*.jar''])
compile ''com.android.support:appcompat-v7:20.+''
compile ''com.android.support:support-v4:20.+''
}
ACTUALIZAR
Acabo de instalar Android Studio Beta y cambié mis dependencias al que Eugen sugirió a continuación. Pero la sincronización del proyecto arroja el mismo error sin importar la versión de appcompat, la versión de soporte que especifico. Da este error cada vez que sincronizo
uses-sdk:minSdkVersion 14 cannot be smaller than version L declared in library com.android.support:support-v4:21.0.0-rc1
Mis dependencias actualizadas
dependencies {
compile fileTree(dir: ''libs'', include: [''*.jar''])
compile ''com.android.support:appcompat-v7:19.+''
compile ''com.android.support:support-v4:19.+''
}
ACTUALIZACIÓN 2
No creo entender el sistema de dependencias de Android Studio correctamente. Acabo de eliminar tanto el appcompat como el soporte de las dependencias y todavía me da el mismo error. ¿Tengo que eliminar las bibliotecas incluidas inicialmente de algún lugar?
build.gradle
* nota: volví a agregar esas dos bibliotecas e intenté sincronizar, por las dudas. Pero no hay chenges.
apply plugin: ''android''
android {
compileSdkVersion 19
buildToolsVersion "19.1.0"
defaultConfig {
applicationId "taz.starz.footynews"
minSdkVersion 14
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.pro''
}
}
}
dependencies {
compile fileTree(dir: ''libs'', include: [''*.jar''])
compile ''com.android.support:appcompat-v7:19.+''
compile ''com.android.support:support-v4:19.+''
compile project('':ParallaxScroll'')
compile files(''src/main/libs/Header2ActionBar-0.2.1.jar'')
compile ''com.arasthel:gnavdrawer-library:+''
compile ''com.koushikdutta.ion:ion:1.2.4''
}
Nivel superior build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath ''com.android.tools.build:gradle:0.12.+''
}
}
allprojects {
repositories {
mavenCentral()
}
}
En Android SDK Manager instale "Android Support Repository" del grupo "extra". Me ayuda. Cuando agregué "exclude group: ''com.android.support'', se completó la compilación module ''support-v4''", pero se produjeron algunos otros errores
Eso es correcto. La nueva biblioteca de soporte no es compatible (todavía) con versiones anteriores de Android.
Cambie su gradle a:
dependencies {
compile fileTree(dir: ''libs'', include: [''*.jar''])
compile ''com.android.support:appcompat-v7:19.1.+''
compile ''com.android.support:support-v4:19.1.+''
}
Espero que todavía tengas algo como esto:
android {
compileSdkVersion 19
buildToolsVersion ''19.1.0''
defaultConfig {
minSdkVersion 14
targetSdkVersion 19
}
}
Estaba obteniendo el error:
La ejecución falló para la tarea '': app: processDebugManifest''.
Error en la fusión del manifiesto: uses-sdk: minSdkVersion 1 no puede ser más pequeño que la versión 4 declarada en la biblioteca C: / Users / Igor / AppData / Local / Android / sdk / samples / android-21_1 / legacy / ApiDemos / app / build / intermedios / exploded-aar / com.android.support / support-v4 / 21.0.3 / AndroidManifest.xml Sugerencia: use herramientas: overrideLibrary = "android.support.v4" para forzar el uso
Luego resolví poniendo lo siguiente en mi bloque de gradle defaultConfig:
minSdkVersion 15
targetSdkVersion 21
Tuve el mismo problema ya que una de mis dependencias había especificado ''support-v7: +'' como una dependencia. Pude rastrear esto usando gradle dependencies
Gradle proporciona una forma de forzar la resolución a una versión específica. Terminé teniendo esto en mi build.grade
:
compile(''com.android.support:appcompat-v7:19.1.0'') {
// really use 19.1.0 even if something else resolves higher
force = true
}
ACTUALIZACIÓN: Encontré la solución real para mi caso. Asegúrese de que ninguna de sus dependencias incluya silenciosamente support-v4 r21 haciendo esto en su build.gradle
:
compile("com.blahblah:blah:123") {
exclude group: ''com.android.support'', module:''support-v4''
}
Puede agregar la exclude
a todas las bibliotecas, luego eliminar una por una hasta que descubra cuál fue la que está tirando en support-v4
y darle el error. Y deja exclude
de eso.
Hay un nuevo error archivado aquí: https://code.google.com/p/android/issues/detail?id=72430
Suponiendo que está utilizando el Repositorio de soporte, la solución consiste en comentar o eliminar la línea
<version>21.0.0-rc1</version>
en el archivo de listado de repo de Maven local en <android-sdk>/extras/android/m2repository/com/android/support-v4/maven-metadata.xml
compile(''com.android.support:support-v4:19.1.0''){
force = true
}
Esto funcionó para mí