Failed to resolve attribute at index 6

来源:互联网 发布:英语发音 知乎 编辑:程序博客网 时间:2024/06/05 14:31

是什么

用 Android Studio 创建了 5.0 的应用,给默认的 Activity 修改主题,从

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">--></style>

改为:

<style name="AppTheme" parent="android:Theme.Material"></style>

就先后报了:

java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.Failed to resolve attribute at index 6

这两个错误。

为什么

因为 Android Studio 创建工程时默认创建的 Activity extends AppCompatActivity,AppCompatActivity 是 v7 兼容包下的类,自然必须用 v7 包中的主题。而 style 默认的 Theme.AppCompat.Light.DarkActionBar 就是兼容包的。

如果强行改成非兼容包的,就报错了。

怎么做

  1. 让 MainActivity 为继承自 Activity,而非 AppCompatActivity,并且将 Activity 中所有用到 v7 包的控件都为非 v7 包的。
  2. 删除默认 Activity 和 布局,重新创建 Activity extends Activity
0 0