2010-10-12 7 views
32

Me estoy haciendo la advertencia:¿Qué ocurre si la versión minSdkVersion es menor que la versión targetSdkVersion?

Attribute minSdkVersion (3) is lower than the project target API level (8) 

Cómo afectará esto a mi aplicación?

+0

los elementos de SDK en el manifiesto de Android son realmente extraño. Comenzando por el nombre. no significan lo que dicen ... No tiene nada que ver con SDK sino API. Además, este mismo mensaje derrota el propósito de minSdkVersion por sí mismo. – gcb

Respuesta

25

Puede ignorar la advertencia de forma segura.

Es una advertencia extraña: significa que está utilizando herramientas para nivel de API 8 (Android 2.2/Froyo) pero que apuntan a API nivel 3 (Android 1.5/Cupcake). Esa advertencia siempre aparecerá a menos que esté utilizando el SDK para apuntar a la versión de Android con la que coincide, en este caso, debería apuntar a Android 2.2 con su SDK actual.

+34

Significa que será mejor que realice pruebas exhaustivas. Dado que compila contra la API objetivo, no hay garantía de que todas las clases y métodos que haga referencia estarán presentes en las API anteriores que la "versión minSdk" le obliga a admitir. Usted es responsable de asegurarse de no utilizar ninguna de esas interfaces más nuevas, o de fallar con elegancia si no están presentes. – beekeeper

+0

¿Qué pasará si no uso esta línea en mi manifiesto? –

17

Realizo la mayor parte de mi desarrollo con el proyecto establecido en el nivel minSdkVersion. Eso garantiza que no estoy usando API más recientes. Luego, cambio a mi nivel targetSdkVersion antes de publicar la aplicación. El único problema con el que me he encontrado hasta ahora es que el nivel inferior no admite alguna sintaxis de manifiesto que necesite usar en producción. (El nivel 3, por ejemplo, no admite targetSdkVersion). Solo repare el manifiesto después de cambiar al nivel superior.

+0

Me gusta este enfoque. – DonnaLea

+0

Esta es una técnica interesante. ¿Te das cuenta de que está bien, y puede ser beneficioso para tus usuarios, utilizar API que son más nuevas que (y por lo tanto no existen en) 'minSdkVersion'? De esta forma, los usuarios con sistemas operativos más modernos que minSdkVersion pueden disfrutar de funciones más modernas en su aplicación, mientras que los usuarios antiguos que ejecutan minSdkVersion también pueden usar su aplicación. Solo debe tener cuidado con la compatibilidad con versiones anteriores, ya que los comentarios de @beekeper en la respuesta aceptada. – Jeffro

+0

@Jeffro - Sí, soy consciente de eso, gracias. También conozco la carga diferida y las técnicas relacionadas que se describen en [la publicación de blog de Adam Powell] (http://android-developers.blogspot.com/2010/07/how-to-have-your-cupcake-and-eat -it-too.html). Todavía me gusta programar al API de nivel más bajo que pretendo admitir y utilizar funciones posteriores solo si la aplicación realmente las exige. –

Cuestiones relacionadas