2017-03-14 1 views
1

Ich erstelle ein leeres Projekt in Android Studio für den Test und füge value-v21-Ordner hinzu. Emulator mit Android API 18 funktioniert gut, mit API 23 eine Fehlermeldung anzeigt:Wie werden Stile im Ordner value-v21 verwendet?

java.lang.RuntimeException: Unable to start activity ComponentInfo{ru.korshun.testapp/ru.korshun.testapp.MainActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. 
               at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) 
               at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
               at android.app.ActivityThread.-wrap11(ActivityThread.java) 
               at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
               at android.os.Handler.dispatchMessage(Handler.java:102) 
               at android.os.Looper.loop(Looper.java:148) 
               at android.app.ActivityThread.main(ActivityThread.java:5417) 
               at java.lang.reflect.Method.invoke(Native Method) 
               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
               Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. 
               at android.support.v7.app.AppCompatDelegateImplV9.createSubDecor(AppCompatDelegateImplV9.java:355) 
               at android.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor(AppCompatDelegateImplV9.java:324) 
               at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:285) 
               at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
               at ru.korshun.testapp.MainActivity.onCreate(MainActivity.java:11) 
               at android.app.Activity.performCreate(Activity.java:6237) 
               at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
               at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
               at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  
               at android.app.ActivityThread.-wrap11(ActivityThread.java)  
               at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  
               at android.os.Handler.dispatchMessage(Handler.java:102)  
               at android.os.Looper.loop(Looper.java:148)  
               at android.app.ActivityThread.main(ActivityThread.java:5417)  
               at java.lang.reflect.Method.invoke(Native Method)  
               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  

Warum?

Meine Werte \ styles.xml:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
</style> 

Werte-v21 \ styles.xml:

<style name="AppTheme" parent="android:Theme.Material.Light.DarkActionBar"> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
</style> 

Manifest:

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:roundIcon="@mipmap/ic_launcher_round" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity android:name=".MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 
      <category android:name="android.intent.category.LAUNCHER"/> 
     </intent-filter> 
    </activity> 
</application> 

Vielen Dank!

+1

Sie AppCompactActivity verwendet haben, die mit dem Material-Thema verwendet werden können, nicht –

Antwort

0

Sie müssen ein Theme.AppCompat-Thema (oder einen Nachkommen) mit dieser Aktivität verwenden. diesen

ändern
android:theme="@style/AppTheme" 

diesen

android:theme="@style/Theme.AppCompat" 
Verwandte Themen