2012-12-09 2 views
5

Stavo seguendo le esercitazioni di base su developers.android.com e sono arrivato creando l'attività denominata DisplayMessageActivity. È un'attività vuota con tutte le specifiche fornite come mostrato nel tutorial. Cordiali saluti, sto usando Min SDK = API 8, Target SDK = API 16, compilare con = API 10Errore di compilazione con API 10

La prossima cosa è che ci sono due errori:

  1. "Il metodo getActionBar() è indefinito per il tipo di DisplayMessageActivity
  2. "casa non può essere risolto o non è un campo"

ho provato a cambiare l'API per 14, che ha richiesto un altro problema, che vuole l'API minima per essere 11.

Questo risolve questi problemi, ma il problema principale è che molti dispositivi usano ancora Gingerbread o forse FroYo. Non posso scrivere per loro? Devo andare più in alto? Come scrivere per loro?

+0

Sì, il codice è esattamente lo stesso di questo tutorial http://developer.android.com/training/basics/firstapp/starting-activity.html –

risposta

5

Per prima cosa, devi assicurarti di compilare l'ultima versione di Android. Dovresti aggiornare la versione di sdk perché stai compilando per API 10 ma il targeting 16. La roba potrebbe interrompersi se lo fai, quindi è meglio rimanere aggiornati per essere sicuri. Ciò significa che fare clic con il pulsante destro del mouse sul progetto in Eclipse, fare clic su Proprietà, quindi su Android. Verifica la versione più alta dell'API disponibile. Se hai l'ultima versione, è Android 4.2. Quindi nel tuo AndroidManifest.xml, imposta lo android:targetSdkVersion su quello che hai scelto (il mio caso api 17).

enter image description here

Questo dovrebbe garantire che la vostra applicazione può funzionare su praticamente HoneyComb a Jellybean. Tuttavia, questa applicazione vuole essere eseguita almeno su froyo. La prossima parte consentirà alla tua app di essere eseguita su tutti i dispositivi.

Fai un metodo come questo:

@TargetApi(Build.VERSION_CODES.HONEYCOMB) 
    private void setupActionBar() { 
     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
      // Show the Up button in the action bar. 
      getActionBar().setDisplayHomeAsUpEnabled(true); 
     } 
    } 

Esso controlla per vedere quale API è in esecuzione e solo se è a nido d'ape e al di sopra, consente la barra delle azioni. Chiamalo dal onCreate() Dovrai prendere la getActionBarCall che si trova in onCreate() in quanto non è più necessaria lì.

Per quanto la home non sia abilitata, potrebbe essere stato solo un obiettivo di progetto sbagliato o hai dimenticato di scrivere android.R.id.home e invece hai scritto R.id.home.

Infine con tutte queste modifiche è necessario pulire il progetto (Progetto -> Pulisci).