5

In precedenza stavo usando AppCompat con la versione 21.1.2 nel mio progetto ai fini del design dei materiali commutabile con la barra degli strumenti. Ma dopo l'aggiornamento ad AppCompat v22.1.0, la mia app ha iniziato a funzionare in modo strano. Ho anche provato alcune delle soluzioni come come segueCome ottenere AppCompat non supporta l'eccezione delle caratteristiche del tema corrente dopo l'aggiornamento alla versione AppCompat v22.1.0 problema

<item name="windowActionBar">false</item> 
<item name="windowNoTitle">true</item> 

applicando anche il tema genitore come

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar"> 

Ma nessuna delle soluzioni di cui sopra non è stata utile per me. Quindi gentilmente, per favore aiutami con i tuoi suggerimenti e suggerimenti per superare il mio problema che sto attualmente affrontando. Sto anche postando il mio styles.xml e l'errore logcat come riferimento. Qualsiasi tipo di aiuto sarebbe utile per me. Grazie in anticipo.

styles.xml

<style name="MainActivityTheme" parent="Theme.AppCompat.NoActionBar"> 
     <item name="colorPrimary">@color/white</item> 
     <item name="colorPrimaryDark">#F2F2F2</item> 
     <item name="android:windowNoTitle">true</item> 
     <item name="windowNoTitle">true</item> 
     <item name="windowActionBar">false</item> 
     <item name="drawerArrowStyle">@style/DrawerArrowStyle</item> 
     <item name="colorControlActivated">@color/yellow</item> 
    </style> 

Logcat Errore:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sample.app/com.sample.app.activities.MainActivity}: java.lang.IllegalArgumentException: AppCompat does not support the current theme features 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2413) 
      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2471) 
      at android.app.ActivityThread.access$900(ActivityThread.java:175) 
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308) 
      at android.os.Handler.dispatchMessage(Handler.java:102) 
      at android.os.Looper.loop(Looper.java:146) 
      at android.app.ActivityThread.main(ActivityThread.java:5602) 
      at java.lang.reflect.Method.invokeNative(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:515) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) 
      at dalvik.system.NativeStart.main(Native Method) 
    Caused by: java.lang.IllegalArgumentException: AppCompat does not support the current theme features 
      at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:360) 
      at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:246) 
      at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106) 
      at com.sample.app.activities.MainActivity.onCreate(MainActivity.java:24) 
      at android.app.Activity.performCreate(Activity.java:5451) 
      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093) 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2377) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2471) 
            at android.app.ActivityThread.access$900(ActivityThread.java:175) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:146) 
            at android.app.ActivityThread.main(ActivityThread.java:5602) 
            at java.lang.reflect.Method.invokeNative(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:515) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) 
            at dalvik.system.NativeStart.main(Native Method) 

possibile duplicato di java.lang.IllegalArgumentException: AppCompat does not support the current theme features

risposta

3

Rimuovere

.NoActionBar 

dal vostro stile, perché già siamo e da un windowNoTitle=false e windowActionBar=false nel tuo tema.

+0

Ho dato corretto controllo. – Chandru

6

Rimuovere .NoActionBar dal MainActivityTheme

<style name="MainActivityTheme" parent="Theme.AppCompat"> 
     // ................................................ 
     <item name="windowNoTitle">true</item> 
     <item name="windowActionBar">false</item> 
</style> 
+1

Questo mi ha aiutato a risolvere l'errore. Grazie! – Simon

16

Grazie a tutti per le vostre risposte. Ho risolto il problema da solo rimuovendo la linea

<item name="android:windowNoTitle">true</item> 

L'errore è avvenuto per aggiungere windowNoTitle due volte come segue

<item name="android:windowNoTitle">true</item> 
<item name="windowNoTitle">true</item> 
+1

Non penso sia causato dall'aggiunta di windowNoTitle due volte. Se hai Android: windowNoTitle causerà il crash, quindi devi usare il nome senza il prefisso Android. – starkej2

+0

Ho avuto un grosso problema perché volevo implementare una libreria e non sapevo perché fosse bloccata e la tua risposta l'ha risolta. Ho solo bisogno della seconda riga del tuo codice. Grazie uomini –

+0

siete i benvenuti @ Alejandroi. Felice che la mia soluzione ti abbia aiutato. – Chandru

0

nel mio caso ho questo codice ==>

<style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar"> 
      <item name="android:windowNoTitle">true</item> 
      <item name="windowActionBar">false</item> 
      <item name="colorPrimary">@color/colorPrimary</item> 
      <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
      <item name="colorAccent">@color/colorAccent</item> 
</style> 

funziona quando elimino

<item name="windowActionBar">false</item> 

spero che questo possa aiutare !!!

0

basta usare questo nella vostra style.xml nessun'altra modifica è necessaria

<style name="AppTheme" parent="Theme.AppCompat"> 

<!-- theme customizations --> 

<item name="colorPrimary">@color/colorPrimary</item> 
<item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
<item name="colorAccent">@color/colorAccent</item> 
</style> 

non aggiungono nulla a file di attività si prega di lasciare

public class Main extends ActionBarActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
// Inflate the menu; this adds items to the action bar if it is present. 
getMenuInflater().inflate(R.menu.main, menu); 
return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
// Handle action bar item clicks here. The action bar will 
// automatically handle clicks on the Home/Up button, so long 
// as you specify a parent activity in AndroidManifest.xml. 
int id = item.getItemId(); 
if (id == R.id.action_settings) { 
    return true; 
} 
return super.onOptionsItemSelected(item); 
} 
} 
1

forse questo aiutare alcune persone

nel mio caso non ho usato il tema .NoActionBar. rimuovo solo il prefisso Android da questo elemento.

<item name="windowActionBar">false</item> 

oltre i usano Android Studio e girato Gradle per voi è

'com.android.support:appcompat-v7:22.2.0' 

fortunatamente l'errore va via.