Android Styles.xml顶级元素未完成

时间:2015-05-29 00:50:35

标签: android

我无法解释或解决这个唠叨错误"顶级元素未完成"这是一个刚刚创建的全新项目。

这里的styles.xml截图enter image description here

这是Gradle文件的一部分

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:22.1.1'
    compile 'com.android.support:support-v4:22.1.1'
}

所以它不像缺少一个参考。到目前为止,应用程序中唯一的另一件事是ToolBar,我还缺少什么让这个错误消失,我仍然能够构建和运行应用程序,但红色的波浪线仍然存在,任何想法将不胜感激。< / p>

3 个答案:

答案 0 :(得分:2)

首先添加此

compile 'com.android.support:appcompat-v7:22.0.0'  // 21 if your target is 21.
在你的style.xml文件中

创建基本主题.. 这意味着您有一个适用于所有版本的基本主题 在你的情况下从11到21。你可以根据需要设置主题。

<style name="AppTheme" parent="AppTheme.Base">
</style>

<style name="AppTheme.Base" parent="Theme.AppCompat.NoActionBar">
    <item name="colorPrimary">@color/primaryColor</item> <!--do not use android:colorPrimary : older version doesn't recognize it.-->
    <item name="colorPrimaryDark">@color/primaryColorDark</item>
    <item name="colorAccent">@color/accentColor</item> <!-- in base theme don't use android prefix. it is not supported -->
</style>

在style.xml

中的所有代码之上

现在,你有了style.xml(v21) 在该文件中,您需要继承该基本主题。

<style name="AppTheme" parent="AppTheme.Base">
    <item name="android:colorPrimary">@color/primaryColor</item> <!--In version 21 you need to provide it as android:colorPrimary : older version only doesn't recognize it.-->
    <item name="android:colorPrimaryDark">@color/primaryColorDark</item>
    <item name="android:colorAccent">@color/accentColor</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:actionBarSize">60dp</item>
    <item name="android:textColor">#FFF</item>
</style>

这样,我希望您理解,AppTheme.Base将适用于所有API。 并且在21中它将特别用于v21。通过这种方式,你可以将你的min sdk版本设置得更低,因为你希望它是11。

试试这个。让我知道它是否有效。!

答案 1 :(得分:1)

它可能与您的样式继承有关。也许尝试删除第一个AppTheme样式,并更改您的自定义样式:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">...</item>
</style>

请确保为您的活动引用此AppTheme名称。

答案 2 :(得分:0)

经过几个小时的辛苦工作后,我开始怀疑我的Android Studio安装或至少我的Android Studio编辑器已损坏,我的假设结果是正确的。

按照说明here我将Android Studio安装重置为默认设置,然后错误就消失了。对于实际样式,不必为lolipop设备创建单独的文件夹-v21。根据这个post,这样的事情就可以了。

如果您正在使用AppCompat,那么所有材质调色板属性(例如colorPrimary)都可用于所有API级别,因此您可以编写单个主题:

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