24

我创建了一个针对 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)

我环顾四周,但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.+'
}
4

3 回答 3

54

AppCompat v21.+'s Theme.AppCompatextends Theme.Base.AppCompatwhich extends Theme.Platform.AppCompatwhich在 21+ 设备(即 Android L)设备上扩展,因此如果您使用 AppCompat,您android:Theme.Material不必执行任何特定操作来获取主题。Material

于 2014-07-03T05:45:16.893 回答
3

您需要将构建 gradle 中的依赖项更改为

compile 'com.android.support:appcompat-v7:21.+'
于 2014-07-03T05:19:57.323 回答
-1

使用以下主题:

android:theme="@style/Base.V7.Theme.AppCompat" >
于 2015-03-13T14:25:19.887 回答