文档章节

'No resource found that matches the given name '@style/Theme.AppCompat.Light'

iBazinga
 iBazinga
发布于 2016/11/09 15:01
字数 1258
阅读 56
收藏 0
点赞 0
评论 0

一、错误描述

'No resource found that matches the given name '@style/Theme.AppCompat.Light'

二、问题分析

以下情形会导致:

  • 项目使用的是Theme.AppCompat主题
    <!-- values目录下,styles.xml文件里面style -->
    <resources>
      <style name="AppBaseTheme" parent="Theme.AppCompat.Light"></style>
      <style name="AppTheme" parent="AppBaseTheme"></style>
    </resources>
    <!-- AndroidManifest.xml文件里面 -->
    android:theme="@style/AppTheme"
  • 项目支持的最小SDK小于API 14(即Android4.0)

    <!-- AndroidManifest.xml文件里面,minSdkVersion<14 --> 
     <uses-sdk
          android:minSdkVersion="8"
          android:targetSdkVersion="23" />
  • 项目没有导入android-support-v7-appcompat兼容包。

三、原理概述

Android Support Library

The Android Support Library package is a set of code libraries that provide backward-compatible versions of Android framework APIs as well as features that are only available through the library APIs.

Android的SDK版本很多,新的SDK版本包含了很多新的特性,为此Google官方提供Android Support Library package来保证高版本SDK的向下兼容。通过使用此包,可以让拥有最新SDK特性的应用运行在API lever 4(即Android 1.6) 及更高版本的设备之上。

  • v4 Support Library
    此包用在API lever 4(即Android 1.6)及更高版本之上。它包含了较多的内容,使用非常广泛,例如:Fragment,NotificationCompat,LoadBroadcastManager,ViewPager,PageTabStrip,Loader,FileProvider 等。
  • v7 Support Libraries
    此包是针对API level 7(即Android 2.1)及以上版本而设计的,但是v7是要依赖v4这个包的,v7支持了Action Bar以及一些Theme的兼容。

    Note: v7 appcompat library
    v7 appcompat library 是包含在 v7 Support Libraries里面的一个包,正是此包增加了Action Bar 用户界面的设计模式,并加入了对material design 的支持,是我们使用最多的一个兼容包。

  • v13 Support Library
    此包是针对API level 13(即Android 3.2)及更高版本设计的,一般我们都不常用,平板开发中能用到,这里就不过多介绍了。

  • v17 Preference Support Library for TV
    看名字就知道了,此包主要是为了TV设备而设计。

Android Theme

  • Holo Theme
    • 在4.0之前Android可以说是没有设计可言的,在4.0之后推出了Android Design,从此Android在设计上有了很大的改善,而在程序实现上相应的就是Holo风格,所以你看到有类似 Theme.Holo.LightTheme.Holo.Light.DarkActionBar 就是4.0的设计风格,但是为了让4.0之前的版本也能有这种风格怎么办呢?这个时候就不得不引用v7包了,所以对应的就有 Theme.AppCompat.LightTheme.AppCompat.Light.DarkActionBar,如果你的程序最小支持的版本是API14(即Android 4.0),那么可以不用考虑v7的兼容。
  • Material Design Theme
    • Android在5.0版本推出了Material Design的概念,这是Android设计上又一大突破。对应的程序实现上就有Theme.Material.LightTheme.Material.Light.DarkActionBar等,但是这种风格只能应用在在5.0版本的手机,如果在5.0之前应用Material Design该怎么办呢?同样的引用appcompat-v7包,这个时候的Theme.AppCompat.LightTheme.AppCompat.Light.DarkActionBar就是相对应兼容的Material Design的Theme。

四、解决方案

此时的解决方法有如下几种:

方法1:

既然没有找到Theme.AppCompat.Light主题,那么我就不使用此主题。

此时将项目values,values-v11,values-v14目录下的styles.xml文件里面的style都改为:

<resources>
 <style name="AppBaseTheme" parent="android:Theme.Light"></style>
 <style name="AppTheme" parent="AppBaseTheme"></style>
</resources>

方法2:

如果没有找到Theme.AppCompat.Light主题,而我们又想要使用最新的主题效果,还有种方法就是将AndroidManifest.xml文件里面,minSdkVersion改成14,比如

 <uses-sdk
     android:minSdkVersion="14"
     android:targetSdkVersion="23" />

此时再将项目values,values-v11,values-v14目录下的styles.xml文件里面style都改为

<resources>
 <style name="AppBaseTheme" parent="android:Theme.Holo.Light"></style>
 <style name="AppTheme" parent="AppBaseTheme"></style>
</resources>

方法3:

当然以上都不是最好的方法,只是提供一种思路。最好的方法就是导入android-support-v7-appcompat库。下面具体介绍:
1.通过Android SDK Manager下载最新的Android Support Library。

(博主插一句:如果没找到,可能需要勾选下面的“Obsolete”)
下载完成之后,可以在以下目录找到AppCompat library

android-sdk/extras/android/support/v7/appcompat

2.将此目录下的项目导入到Eclipse中


3.右键点击我们的Android项目,选择Properties,左侧选择Android,在下方Library框里点击Add,最后选择appcompat_v7,确定。此时问题就解决了。

五、补充:其他错误解决

但在以上方法3步骤2导入appcompat_v7到Eclipse之后,有可能还会出现错误提示,比如
appcompat_v7\res\values-v23\styles_base.xml:20: error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button.Colored'.

出现此问题的原因是appcompat_v7已经更新到了最新版本并且高于编译环境的SDK版本,此时在Android SDK Manager将SDK及编译工具更新到最高版本


升级完成之后右键点击appcompat_v7项目,选择Properties,选择Project Build Target 为最新版本,这样就OK了。

(博主暂未遇到,防患未然)

 

  • 文/小池laucherish(简书作者)
  • 原文链接:http://www.jianshu.com/p/6ad7864e005e
  • 著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

本文转载自:http://www.jianshu.com/p/6ad7864e005e

共有 人打赏支持
iBazinga
粉丝 11
博文 127
码字总数 42315
作品 0
深圳
程序员
安卓开发中Theme.AppCompat.Light的解决方法

styles.xml中<style name="AppBaseTheme" parent="Theme.AppCompat.Light">提示如下错误,这是版本问题。 error: Error retrieving parent for item: No resource found that matches the gi......

Jamsm ⋅ 2016/07/14 ⋅ 0

导入as中出现theme问题,如何解决?

@火蚁 你好,想跟你请教个问题:将最新版本源码导入到as中时,make时出现错误,style.xml报错:Error:(9, -1) android-apt-compiler: [oschina-android-app-master] D:androidoschina-andro...

gxxXXX ⋅ 2016/04/20 ⋅ 0

oschina app 导入时出错

[2015-07-01 20:05:01 - AppStart]E:AppProjectoschinaappsrcmainresvaluesstyles.xml:21: error:Error retrieving parent for item: No resource found that matches thegiven name 'PopupM......

z98071 ⋅ 2015/07/01 ⋅ 5

sdk 与adt不适用,在eclipse 中删除版本再装引起的问题

eclipse 使用的是4.3版本的,sdk 使用24.3.2,这里的是一个全量包来的,就是从24.3.2 以下的版本都包括在里面了,而 adt 只找到最高 23.06 一开始还能用着,但是,因版本不对称,总是要在里面...

时尚龙皇 ⋅ 2015/09/09 ⋅ 0

难啊,求解,android 的问题 java

Error: Error parsing C:UsersJackAppDataLocalAndroidSdksystem-imagesandroid-26android-tvx86devices.xml cvc-complex-type.2.4.d: 发现了以元素 'd:skin' 开头的无效内容。此处不应含有子......

小猫咪1997 ⋅ 2017/07/20 ⋅ 3

创建Android项目的时候出现很多红色的xx,是怎么回事?

[2016-08-23 16:16:41 - ds] E:WorkspacesEclipsedsresvaluesstyles.xml:7: error: Error retrieving parent for item: No resource found that matches the given name 'Theme.AppCompat.Li......

            乀SM东东 ⋅ 2016/08/23 ⋅ 0

Android项目中出现一些情况(如下)

在MainActivity.java中出现R cannot be resolved to a variable 在/res/values/styles.xml中出现error: Error retrieving parent for item: No resource found that matches the given name ......

小雪椰2208 ⋅ 2015/05/16 ⋅ 4

新建工程即使选择了默认Theme,AndroidManifest里面依然是android:theme="@style/AppTheme"

Win7 64位 Eclipse4.2.1 ADT23.02 Java1.8 x86 D:workspaceTestAndroidManifest.xml:10: error: Error: No resource found that matches the given name (at 'theme' with value......

wesley0314 ⋅ 2014/12/11 ⋅ 1

创建一个android工程的时候回报这个错误 error: Error: No resource found that matches the given name (at 'theme' with value '@style/AppTheme').

求教各位大神 为什么我创建一个android工程的时候回报这个错误 error: Error: No resource found that matches the given name (at 'theme' with value '@style/AppTheme')....

呆头龟 ⋅ 2014/12/14 ⋅ 4

使用Eclipse新建工程就提示at 'theme' with value '@style/AppTheme'

使用Eclipse新建工程就提示No resource found that matches the given name (at 'theme' with value '@style/AppTheme'). 我的AndroidManifest.xml的文件代码:...

猪仔辉 ⋅ 2015/03/24 ⋅ 1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Mahout基于内存的DataMode 推荐引擎Demo2

Mahout基于内存的DataMode 推荐引擎Demo2 //注释的部分是基于文件也可以理解为基于日志文件的, //DataModel 可以有很多种,实现abstractDataMode的子类,原则上都可以作为数据源,个人觉得,...

xiaomin0322 ⋅ 21分钟前 ⋅ 0

Docker部署Tomcat及Web应用

一、在线下载docker yum install -y epel-releaseyum install docker-io # 安装dockerchkconfig docker on # 加入开机启动service docker start # 启动docker服务 1 ...

Jeam_ ⋅ 21分钟前 ⋅ 0

研发运营一体化能力成熟度模型

研发运营一体化是指在 IT 软件及相关服务的研发及交付过程中,将应用的需求、开发、测试、部 署和运营统一起来,基于整个组织的协作和应用架构的优化,实现敏捷开发、持续交付和应用运营的无...

stars永恒 ⋅ 26分钟前 ⋅ 0

jQuery缩小放大触发事件

jquery的resize()方法使用 <html> <head> <script type="text/javascript" src="/jquery/jquery.js"></script> <script type="text/javascript"> var i = 0; $(document).ready(function(){ ......

RobertZou ⋅ 27分钟前 ⋅ 0

eclipse python 搭建

https://jingyan.baidu.com/article/9113f81b68ebce2b3214c7e0.html https://www.cnblogs.com/ZhangRuoXu/p/6397756.html https://blog.csdn.net/zhangphil/article/details/78962159 字符集......

之渊 ⋅ 27分钟前 ⋅ 0

weex,react native,flutter

weex: 一次编写,处处运行 RN: 学一次,到处写(针对安卓,IOS平台特性 各自写,会有很大一部分是一样的代码) 这些方案是否真正的解决了跨平台问题呢?从目前的状况来看,很显然是没有的,因...

东东笔记 ⋅ 33分钟前 ⋅ 0

Spring Cloud微服务分布式云架构-集成项目

Spring Cloud集成项目有很多,下面我们列举一下和Spring Cloud相关的优秀项目,我们的企业架构中用到了很多的优秀项目,说白了,也是站在巨人的肩膀上去整合的。在学习Spring Cloud之前大家必...

明理萝 ⋅ 38分钟前 ⋅ 1

SpringMVC图片上传问题解决

当我们上传图片时一直发现: MultipartFile file = null; if (request instanceof MultipartHttpServletRequest) 匹配不上, 解决方案: 在前端xml加入如下配置代码即可 <!-- 图片上传bean --...

泉天下 ⋅ 40分钟前 ⋅ 0

Spring表达式语言(SpEL)

1、SpEL引用 Spring EL在bean创建时执行其中的表达式。此外,所有的Spring表达式都可以通过XML或注解的方式实现。下面将使用Spring表达式语言(SpEL),注入字符串,整数,Bean到属性。 SpEL的...

霍淇滨 ⋅ 56分钟前 ⋅ 0

Gradle使用阿里云镜像

gradle 生命周期中有一个初始化( Initialization )的过程,这个过程运行在 build script 之前,我们可以在这个地方做一点系统全局的设置,如配置仓库地址。 你可以在以下几个位置实现仓库地址...

明MikeWoo ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部