Compilación con Android 4.X pero compatible con API Nivel 9

Estoy trabajando en una aplicación que utiliza ActionBarSherlock. Como señala la documentación :

[…] la biblioteca requiere que tanto ella como su proyecto estén compilados con Android 4.0 o más reciente. El proyecto también requiere que esté compilando con JDK 1.6 tanto en su editor como en cualquier sistema de compilación que esté utilizando.

Por lo tanto, eso significa que voy a compilar mi aplicación (y la biblioteca) contra Android 4.X, pero en mi Manifiesto, declaro que estoy apuntando (por ejemplo) API Nivel 9.

Todo esto funciona bien y bien, pero hay algo que me perturba. De la FAQ :

¿A qué nivel de API debo apuntar en mi manifiesto cuando utilizo la biblioteca?

Es necesario apuntar el API nivel 11 o más reciente, ya que hará que Android añada automáticamente la barra de acción nativa cuando se ejecute en dispositivos más nuevos. Dado que va a compilar contra nuevas API pero es probable que su aplicación se ejecute en dispositivos con versiones anteriores de Android , se debe tener cuidado para evitar el uso o verificar y llamar a cualquier método introducido después de la versión mínima de SDK.

Eso significa que tendré que comprobar manualmente cada llamada de método, así que no uso ninguna que no esté disponible en mi nivel de API orientado (9 en mi caso)? Esto me suena mal.

¿Hay alguna manera de decirle a mi IDE (IntelliJ), que sólo estoy usando el Nivel 9 de API (por lo que no obtengo autocompletado para métodos / clases no existentes y no los uso por accidente) y Entonces elige compilarlo contra otra versión de Android?

¿O puedo utilizar algunas comprobaciones automatizadas (que se ejecutan en tiempo de compilación) para comprobarlo?

La característica de pelusa de ADT debe hacerse cargo de esto advirtiendo cuando se hacen llamadas API para la versión de API incorrecta.

Debe estar compilando ABS y su proyecto con el SDK más reciente disponible (en la actualidad, 4.1). Su manifiesto debe tener una targetSdkVersion tan alta como sea posible (idealmente coincidiendo con su SDK de compilación) y su minSdkVersion debe estar en la versión más baja que soporte.

Lint está parcialmente integrado con IntelliJ IDEA y también está disponible como una herramienta de línea de comandos.

Establecer temporalmente su SDK de destino a los varios más bajos y depurar con él. Su compilación final es con el SDK más reciente.

Establecer una meta de compilación similar a la que ha mencionado en su manifiesto.

Como siempre, debe establecer el targetSdk al máximo disponible en el manifiesto y en el archivo project.properties (según lo recomendado por google en uno de sus videos), para que el ADT y el SDK puedan optimizar el ADK en consecuencia.

Establezca el minSdk al que desee respaldar su aplicación y deje que Lint le diga si hay algún problema en caso de que utilice demasiado-new-features.

  • ¿Cómo puedo configurar la finalización de código java para un proyecto nativo de reactivar en intellij?
  • Separar un proyecto de Android en varias bibliotecas de dependientes
  • AndroidAnnotations y Dagger
  • Intellij + gradle + robolectric + espresso
  • Intellij Idea no encuentra mi dispositivo Android
  • ¿Cómo construyo un proyecto de Android usando Ant? (IntelliJ IDE)
  • Problema de implementación de fragmentos Android
  • Carga de clase dinámica con IntelliJ - 64K method dex issue
  • Versión para Android de IntelliJ sdk
  • Ejecutar Robolectric en IDEA detrás del proxy
  • Depuración del Widget de Android en Intellij IDEA
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.