如何在Theme.Material中使用ActionBarActivity

Som*_*ent 24 android material-design

我创建了一个针对L预览的新项目.sdk生成的启动器活动扩展了ActionBarActivity,但是,当我尝试运行裸骨生成的活动时,它会抛出以下异常:

  Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
            at android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.java:110)
            at android.support.v7.app.ActionBarActivityDelegateICS.onCreate(ActionBarActivityDelegateICS.java:57)
            at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:99)
Run Code Online (Sandbox Code Playgroud)

我环顾四周但Theme.AppCompat.Material似乎并不存在.如何使ActionBarActivity利用新的Material主题?

我的build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 'android-L'
    buildToolsVersion '20.0.0'
    defaultConfig {
        applicationId 'com.sdchang.example'
        minSdkVersion 'L'
        targetSdkVersion 'L'
        versionCode 1
        versionName '1.0'
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.+'
    compile 'com.mcxiaoke.volley:library:1.0.+@aar'
    compile 'com.google.code.gson:gson:2.2.+'
    compile 'com.squareup.okhttp:okhttp:2.0.+'
}
Run Code Online (Sandbox Code Playgroud)

ian*_*ake 54

程序兼容性V21 +的Theme.AppCompat扩展Theme.Base.AppCompat延伸Theme.Platform.AppCompat延伸android:Theme.Material在21+设备(即,安卓L)设备,所以你不应该做具体得到什么Material,如果你正在使用程序兼容性主题.

  • 简而言之,res/values-v21中SDK生成的styles.xml使用@android:Theme.Material.Light.您可能想要在其上提交票证. (2认同)
  • 即使sdk正确地遵循文档,我个人认为当sdk生成一个在运行时崩溃的项目时,这是一个错误.:( (2认同)