2015-07-10 11 views
6

Sono nuovo nello sviluppo di Android e sto cercando di seguire la guida di sviluppo Android in Android Studio, in particolare cercando di impostare una barra delle azioni.Come smettere di usare AppCompat in Android Studio?

mio minSdkVersion è 15, indicato nel build:gradle (Modulo: app) così ho potrebbe pensare che non avrei bisogno di utilizzare alcun App Compatibilità sostegno, ma il mio tema, come si dice nel styles.xml è <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> e non posso cambiare a qualsiasi Holo senza che si blocchi la mia app ogni volta che lo eseguo.

Inoltre, utilizzando questo non posso usare android:showAsAction (che pretende molto lavoro solo) e invece bisogno di usare app:showAsAction e tutta la libreria di supporto Android.

Grazie in anticipo.

+0

Mostraci i problemi specifici con cui sei bloccato, in modo che possiamo aiutarti in questo. Allo stato attuale, la tua domanda è fuori tema come da centro assistenza. – nhaarman

+0

se non si desidera supportare le versioni precedenti di Android, non sarà necessario. è possibile riconfigurare le impostazioni e impostare il supporto per sdk minimo all'api più recente che si sta utilizzando. – Shekhar

+0

Quando aggiungo un elemento in un menu xml e dichiaro android: showAsAction = "ifRoom" genera un errore e dice che dovrei usare app: showAsAction mentre sto usando la libreria appcompat. Ma non voglio usare le librerie appcompat. La mia versione minima dell'SDK è l'API 15. Ho reimpostato tutto il mio progetto per renderlo 15 all'inizio. –

risposta

8

CommonsWare ha fornito i passaggi corretti ma ho ancora combattuto perché non c'erano abbastanza dettagli per farmi sapere esattamente cosa fare (essere nuovo per Android Studio e sviluppo Android).

ho trovato un post sul blog che spiega i dettagli qui e ha funzionato per me: https://mobiarch.wordpress.com/2015/04/17/removing-support-library-in-android-studio

Ecco quello che dice (ho aggiunto un po 'di ulteriore aiuto):

Aperto build.gradle dal progetto . Individua la sezione delle dipendenze.

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:22.0.0' 
} 

Rimuovere la riga per la libreria di compatibilità. Dopo che la sezione dovrebbe assomigliare a questo.

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
} 

Salvare e chiudere.

Per impostazione predefinita l'applicazione utilizza un tema disponibile nella libreria di supporto. Questo non è disponibile dall'API principale. Quindi dobbiamo aggiustarlo. Aperto res/values/styles.xml. Il tag stile sarà simile a questa:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <!-- Customize your theme here. --> 
</style> 

Modificare il genitore di un tema che è disponibile presso la SDK nucleo.Per esempio:

<style name="AppTheme" parent="android:style/Theme.Holo.Light"> 
    <!-- Customize your theme here. --> 
</style> 

Rinominare le proprietà nei file XML di attività come app:showAsAction-android:showAsAction.

Estendere le classi di attività da Activity anziché ActionBarActivity e AppCompatActivity. Dovrai premere Alt + Invio su Activity dopo aver apportato le modifiche per aggiungere importare android.app.Activity nella parte superiore del file. Vedere l'esempio di seguito:

Cambio:

import android.support.v7.app.ActionBarActivity; 

public class DisplayMessageActivity extends ActionBarActivity { 
    . 
    . 
    . 
} 

a:

import android.app.Activity; 

public class DisplayMessageActivity extends Activity { 
    . 
    . 
    . 
} 

E lo stesso per tutte le altre attività che si estende ActionBarActivity e AppCompatActivity

Infine, eseguire una Build | Clean Project e un Build | Rebuild Project per risolvere gli errori di generazione correnti.

6

Passo # 1: Modificare il tema da Theme.AppCompat

Passo # 2: Rimuovere appcompat-v7 dalla tua lista di dependencies nel file del modulo appbuild.gradle

Passo # 3: Modificare tutte le attività di non ereditare da AppCompatActivity o ActionBarActivity, ma invece ereditare da qualcos'altro, come Activity

Passo # 4: Modificare tutte le risorse di menu, in sostituzione di app: con android:

Passo # 5: fare una nuova ricostruzione (Build> Clean Project) e correggere eventuali errori di compilazione persistente innescati dai suddetti quattro passi

Here is a sample project che utilizza la barra delle azioni nativo.

+1

Perché il modello Android Studio non viene fornito con tutto questo? Mentre passo alle lezioni di sviluppo di Android, noto molte cose che dicono che dovrei essere in grado di chiamare come ** getActionBar(). SetDisplayHomeAsUpEnabled (true); ** "blocca la mia app. Invece devo usare ** getSupportActionBar() .setDisplayHomeAsUpEnabled (true); ** sebbene (non so perché) ho definito l'opzione up senza doverlo impostare –

+0

@JoaquimFerrer: "Perché il modello Android Studio non viene fornito con tutto questo?" In realtà, se si crea il progetto con un 'minSdkVersion' di 22, almeno in Android Studio 1.2.2, è necessario reimpostare manualmente' minSdkVersion' sul valore desiderato, tuttavia, il comportamento del i modelli di nuovi progetti/nuove attività variano in base alla versione di Android Studio. "Dovrei essere in grado di chiamare getSupportActionBar(). setDisplayHomeAsUpEnabled (true); si blocca la mia app "- che non dovrebbe essere compilato se non si utilizza' appcompat-v7'. Usa 'getActionBar()' invece di 'getSupportActionBar()'. – CommonsWare

+0

Sono le funzioni opposte scusa (ho già modificato). Sto utilizzando il più recente Android Studio ma nella creazione del progetto ho creato il mio 'minSdk' 15 e non 22. Pensi che dovrei usare le librerie appcompat? –

Problemi correlati