2010-10-12 9 views
32

sto ottenendo l'avvertimento:Cosa succede se minSdkVersion è inferiore a targetSdkVersion?

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

Quali saranno le conseguenze mia app?

+0

gli elementi SDK nel manifesto Android sono davvero strano. A partire dal nome. non significano quello che dicono ... Non ha nulla a che fare con l'SDK ma con l'API. Anche questo stesso messaggio sconfigge da solo lo scopo di minSdkVersion. – gcb

risposta

25

È possibile ignorare tranquillamente l'avviso.

È un avviso strano: significa che si stanno utilizzando gli strumenti per il livello API 8 (Android 2.2/Froyo) ma il livello API di destinazione 3 (Android 1.5/Cupcake). Tale avviso verrà sempre visualizzato a meno che tu non stia utilizzando l'SDK per scegliere come target la versione Android con cui coincide: in questo caso, dovresti scegliere come target Android 2.2 con il tuo SDK corrente.

+34

Significa che è meglio fare test approfonditi. Poiché stai eseguendo la compilazione rispetto all'API di destinazione, non vi è alcuna garanzia che tutte le classi e i metodi di riferimento siano presenti nelle API precedenti che "minSdkVersion" obbliga a supportare. Sei responsabile di accertarti di non utilizzare nessuna di queste interfacce più recenti o di fallire con garbo se non sono presenti. – beekeeper

+0

Cosa succederà se non uso questa linea nel mio manifest? –

17

Realizzo la maggior parte del mio sviluppo con il progetto impostato sul livello minSdkVersion. Questo garantisce che non sto usando API più recenti. Passo quindi al mio livello targetSdkVersion prima di pubblicare l'app. L'unico problema che ho incontrato finora è che il livello più basso non supporta la sintassi manifest che devo usare in produzione. (Il livello 3, ad esempio, non supporta targetSdkVersion.) Risolvo il manifest dopo il passaggio al livello superiore.

+0

Mi piace questo approccio. – DonnaLea

+0

Questa è una tecnica interessante. Ti rendi conto che va bene, e può essere utile per i tuoi utenti, utilizzare API più recenti di (e quindi non esistono in) 'minSdkVersion'? In questo modo, gli utenti con sistemi operativi più moderni di minSdkVersion possono usufruire di funzionalità più moderne nella tua app, mentre gli utenti precedenti che utilizzano minSdkVersion possono ancora utilizzare la tua app. Devi solo fare attenzione alla retrocompatibilità, come i commenti di @beekeper nella risposta accettata. – Jeffro

+0

@Jeffro - Sì, ne sono consapevole, grazie. Sono anche consapevole del caricamento lento e delle tecniche correlate descritte nel post del blog di Adam Powell (http://android-developers.blogspot.com/2010/07/how-to-have-your-cupcake-and-eat -E-too.html). Mi piace ancora programmare l'API di livello più basso che intendo supportare e utilizzare le funzionalità successive solo se l'app le richiede davvero. –

Problemi correlati