一、stsckoverflow

http://stackoverflow.com/questions/17870881/cant-find-theme-appcompat-light-for-new-android-actionbar-support

Solution 1:

AppCompat is a library project. You need to reference the library project in your android project.

Check the topic Adding libraries with resources.

1. File->Import (android-sdk\extras\android\support\v7). Choose "appcompat"

2. Project-> properties->Android. In the section library "Add" and choose "appCompat"

3. That is all!

二、developer .android .com csdn 翻译

1. https://developer.android.com/tools/support-library/index.html

2. http://blog.csdn.net/crazybigfish/article/details/18363351

Solution 2:

详细分析,了解深层原因

主要原因是因为没有添加Android Support Library?。

1.1. 什么是Android Support Library,拿来有什么用?

是一系列的代码库,为了向后兼容一些低版本的Android API。这个是为了让你的代码能够运行在更多机器上,因为有些高版本API的特性在低版本上是无法使用的。

在Android Support Library包中,包含了几个可以被引入到你应用的库。每一个库支持一个特定的Android平台版本范围和功能集合。

这个指南解释了Support Library提供的重要功能和版本,这将帮助你决定你的应用选择哪一个功能和版本。总的来说,我们推荐引入v4 supportv7 appcompat的库,因为它们支持的Android版本很广泛,并为推荐的用户界面样式提供API。想要使用任何下面的库,你必须将库文件下载到你安装的Android SDK中。在Support Library Setup中根据指引下载Support Library,来完成这一步骤。你必须采取额外的措施来引入一个特殊的Support Library到你的应用中。查看下面每一个库章节的末尾来获取重要信息,这些信息阐述了如何将库引入你的应用中。

v4 Support Library
    这个库是为Android 1.6(API level 4)和更高版本设计的。相对于其他库,他包含的API集合最大,包括对应用组件、用户界面功能、辅助功能、数据处理、网络连接和编程工具的支持。还有很多其他API包含在这个库中。在API引用中查看 android.support.v4包,以获取关于v4 Support Library API的全部和详细的信息。

这个库放在<sdk>/extras/android/support/v4/目录下。这个库不包含用户界面资源。按照adding libraries without resources的说明来将这个库引入你的应用项目。

v7 Libraries
   有几个库是为Android 2.1(API level 7)和更高版本设计的。这些库提供指定的功能集合,并且可以相互独立地引入你的应用。

v7 appcompat library

这个库添加了对Action Bar用户界面 design pattern(设计样式)的支持。注意:这个库依赖于v4 Support Library。如果你在使用Ant或者Eclipse,确保要将v4 Support Library作为这个库classpath的一部分引入。在你下载了Android Support Library以后,这个库放在<sdk>/extras/android/support/v7/appcompat/ 目录下。这个库包含用户界面资源。按照 adding libraries with resources 的说明来将这个库引入你的应用项目。

v7 gridlayout library

这个库添加了对 GridLayout类的支持,这个类允许你使用矩形单元的网格来排列用户界面元素。在API引用中查看android.support.v7.widget 包,以获取关于v7 gridlayout Support Library API的详细信息。在你下载了Android Support Library以后,这个库放在<sdk>/extras/android/support/v7/gridlayout/ 目录下。这个库包含用户界面资源。按照adding libraries with resources 的说明来将这个库引入你的应用项目。

v7 mediarouter library

这个库提供了MediaRouter, MediaRouteProvider和相关的支持Google Cast developer preview(谷歌投影)开发者预览的媒体类。总的来说,在v7 mediarouter库中的API提供了一种控制手段,它可以控制从当前设备到扩展屏幕、扬声器和其他目的设备的媒体通道和数据流的路径选择。这个库包含了一些API,这些API包含发行具有应用特性的媒体路径provider,发现和选择目的设备,检查媒体状态和其他一些功能。在API引用中查看 android.support.v7.media 包,以获取关于v7 mediarouter Support Library API的详细信息。

在你下载了Android Support Library以后,这个库放在<sdk>/extras/android/support/v7/mediarouter/ 目录下。这个库包含用户界面资源。它是以一个从属于v7 appcompat库的库项目的方式提供给开发者使用的,所以当你在创建项目的时候,你需要在build path中同时引入这两个库。按照 adding libraries with resources 的说明以获取更多如何创建项目的信息。 如果你使用Eclipse/ADT开发,要确保同时引入android-support-v7-mediarouter.jar和android-support-v7-appcompat.jar文件。

v8 Support Library

这个库是为Android(API level 8)或更高版本的使用设计的。它加入了对 RenderScript 计算架构的支持。这些API包含在 android.support.v8.renderscript包中。你应该能意识到介绍包含这些API的应用程序的步骤与其他支持库的API有很大不同。查看 RenderScript开发者指南,以获取更多关于这些API的信息。

v13 Support Library

这个库是为Android 3.2(API level 13)或更高版本的使用设计的。它添加了对 Fragment用户界面样式(利用FragmentCompat类)和额外的fragment支持类的支持。查看 Fragment开发者指南查阅更多关于fragment的信息。在API引用中查看android.support.v13包,以获取关于v13 Support Library API的详细信息。在你下载了Android Support Library以后,这个库放在 <sdk>/extras/android/support/v13/  目录下。这个库不包含用户界面资源。按照 adding libraries without resources的说明来将这个库引入你的应用项目。

1.2  如何添加?

android-support-v7-appcompat的使用

1、下载最新的SDK,然后找到里面的sdk\extras\android\support\v7\appcompat导入到eclipse里面。

2、右键里的项目 - Properties - Android - Add - 选择导入的appcompat项目,这样就可以使自己的项目引用appcompat项目。

3、导入之后如果在控制台提示有两个android-support-v4.jar,原因是自己项目中的android-support-v4.jar和导入的appcompat项目的android-support-v4.jar重复了,删掉自己项目中的android-support-v4.jar就OK了。

下载Support Library

Android Support Library包是作为Android SDK的补充下载提供的,并且在AndroidSDK Manager中是可用的。遵循以下说明来获取Support Library文件。

通过SDK Manager获取Support Library:

1.打开Android SDK Manager

2.在SDK Manager窗口,滚动到Package List的末尾,找到Extra文件夹,如果需要的话打开文件夹显示它的内容。

3.选择Android Support Library项目。

注意:如果你使用的是Android Studio开发,选择并安装Android Support Repository项目而不是Android Support Library项目。

4.点击Install packages按钮。

下载完成后,SDK会将Support Library文件安装到你已经存在的Android SDK目录下。库文件位于SDK的如下子目录:<sdk>/extras/android/support/目录。

选择Support Library

在添加一个Support Library到你的项目之前,想好你要包含哪些功能,以及你要支持的最低Android版本是多少。查看Support Library Features以获取更多关于不同库提供的功能的信息。

添加Support Library

为了使用Support Library,你必须在开发环境中修改应用项目的classpath依赖关系。并且你必须为将要使用的每一个Support Library都执行一下上述步骤。

除了可编译的代码类,一些Support Library包含了资源,比如图片或XML文件。例如,v7 appcompatv7 gridlayout库包含一些资源。

如果你不确定一个库是否包含资源,查看Support Library Features页面。下面的章节描述了如何添加一个包含或不包含资源的Support Library到你的应用项目中。

添加不带资源的library

添加一个不包含资源的Support Library到你的应用项目:利用Eclipse

1. 确保你已经利用SDK Manager下载了Android Support Library 。

2. 在你的项目的根目录下创建一个libs/目录。

3. 从你的Android SDK安装目录(例如,<sdk>/extras/android/support/v4/android-support-v4.jar)下拷贝JAR文件到你项目的libs/目录下。

4. 右键点击JAR文件并选择Build Path > Add to Build Path。

利用Android Studio

1. 确保你已经利用SDK Manager下载了Android Support Repository 。

2. 打开项目中的 build.gradle文件。

3. 添加Support Library到dependencies部分。例如,如果添加v4 Support Library,加入下面一行:

添加带资源的library

添加一个包含资源(例如带有Action Bar的v7 appcompat)的Support Library到你的应用项目:

创建一个基于support library代码的 library project

1. 确保你已经利用 SDK Manager下载了Android Support Library

2. 创建一个library项目并且确保需要的JAR文件包含在了项目的build path中:

1. 选择File > Import

2. 选择Existing Android Code Into Workspace 并点击Next

3. 浏览SDK安装目录,并进入Support Library目录下。例如,如果你要添加appcompat项目,浏览 <sdk>/extras/android/support/v7/appcompat/。

4. 点击Finish引入项目。对于v7 appcompat项目,你将看到一个标题为android-support-v7-appcompat的新项目。

5. 在新项目中,展开libs/ 文件夹,右键点击每一个.jar文件,并选择Build Path > Add to Build Path。例如,当创建v7 appcompat项目时,同时将android-support-v4.jar和android-support-v7-appcompat.jar文件添加到build path中。

6. 右键点击library项目文件夹并选择Build Path > Configure Build Path

7. 在Order and Export选项中,在刚刚添加到build path中的.jar文件上打勾,这时这些文件成为项目可用的了并依赖于这个library项目。例如,appcompat项目要求同时导出android-support-v4.jar和android-support-v7-appcompat.jar文件。

8. 去掉Android Dependencies上的对勾。

9. 点击OK完成设置。

现在你拥有了一个包含你选择的Support Library的library项目,你可以在一个或多个应用项目中利用这个Support Library。

向你的应用工程(译者注:需要加入Support Library的工程)添加库:

1. 在项目浏览器中右键单击你的项目,选择Properties

2. 在左边的分类面板中,选择Android

3. 在Library面板中,点击Add

4. 选择库项目,然后点击OK。例如,appcompat项目会在列表中显示为android-support-v7-appcompat

5. 在properties窗口中,点击OK

利用Android Studio

1. 确保你利用SDK Manager下载了Android Support Repository

2. 打开项目中的build.gradle文件。

3. 将support library功能项目标识符添加到dependencies部分。例如,为了包含appcompat项目,需要将compile "com.android.support:appcompat-v7:18.0.+"添加到dependencies部分。如下:

使用Support Library的API

对目前framework API提供支持的Support Library类,一般都与framework中的类名相同,但是位于android.support类包中,或者有一个*Compat后缀。

警告:当使用Support Library中的类的时候,确定你从适当的包中引入这些类。例如,当应用ActionBar类的时候:

· 当使用Support Library时:android.support.v7.app.ActionBar

· 当只为API 11或更高级别开发的时候:android.app.ActionBar

注意:当包含了Support Library在你的项目中后,我们强烈推荐你使用ProGuard工具准备你的应用APK发布。除了保护你的源代码外,ProGuard工具还可以从你包含到应用中的任何库中去除无用的类,这样可以使你的应用大小在下载的时候尽可能的小。要获取更多信息,请查看 ProGuard

在Android开发者training classesguides和示例中,提供了一些使用Support Library功能的更多指南。查看API参考中的android.support包,以获取更多关于单个Support Library类和方法的信息。

Manifest声明的改变

如果你正在利用Support Library增加目前应用的向下兼容性到一个Android API的早期版本,确保更新你应用的manifest。特别的,你要更新manifest中<uses-sdk>标签的android:minSdkVersion元素,改成一个新的,更低的版本号,如下:

<uses-sdk

android:minSdkVersion="7"

android:targetSdkVersion="17" />

这个改变通知Google Play你的应用可以被安装在Android 2.1(API level 7)或更高的版本的设备中。

注意:如果你在项目中包含了v4 support和v7 appcompat库,你需要指定最小SDK版本为7(而不是4)。你引入到应用的最高级别的support library决定了它可以操作的最低的API版本。(译者注:这句话是指当你同时引入了多个包的情况,比如,v7比v4版本更高,所以可以操作的最小SDK版本是7)

代码示例

每一个Support Library都包含了代码示例来帮助你开始使用support API。代码示例包含在从SDK Manager的下载中,并被放在了Android SDK安装目录中,如下所列:

· 4v Samples: <sdk>/extras/android/support/samples/Support4Demos/

· 7v Samples: <sdk>/extras/android/support/samples/Support7Demos/

· 13v Samples: <sdk>/extras/android/support/samples/Support13Demos/

· App Navigation: <sdk>/extras/android/support/samples/SupportAppNavigation/

error:No resource found that matches the given name 'Theme.AppCompat.Light'的更多相关文章

  1. 3-No resource found that matches the given name 'Theme.AppCompat.Light 的完美解决方案

    转载:http://www.360doc.com/content/15/0316/15/9200790_455576135.shtml 由于我在配置安卓环境时也碰到了类似问题,用这篇博客解决了主要问题 ...

  2. error: Error retrieving parent for item: No resource found that matches the given name 'Theme.AppCompat.Light'.

    error: Error retrieving parent for item: No resource found that matches the given name 'Theme.AppCom ...

  3. 【android】新手容易遇到的[error: Error retrieving parent for item: No resource found that matches the given name 'Theme.AppCompat.Light'.]Theme出错的问题

    一.概述 近期刚接手了一个项目,开发工具为eclipse,由于版本较低,且考虑到如果转android studio项目的话,会其他人的维护带来困难,所以想着还是维护项目原来的开发环境吧. 但是导入项目 ...

  4. 创建Android项目时出错——No resource found that matches the given name 'Theme.AppCompat.Light'

    创建Android项目时出错,error: Error retrieving parent for item: No resource found that matches the given nam ...

  5. No resource found that matches the given name 'Theme.AppCompat.Light 的完美解决方案

    No resource found that matches the given name 'Theme.AppCompat.Light 的完美解决方案 首先这个问题的产生是由于缺少Theme.App ...

  6. Android 创建项目出现No resource found that matches the given name Theme.AppCompat.Light

    关于为何出现No resource found that matches the given name ‘Theme.AppCompat.Light’的原因 这边博客已经写的很清楚了 大家可以参考一下 ...

  7. No resource found that matches the given name 'Theme.AppCompat.Light'

    eclipse在新建andorid工程的时候出现找不到AppCompat.Light主题的问题,这是因为缺少支持低版本的v7包所致, 这个不是jar包,在sdk的extras->andorid- ...

  8. 解决 Error retrieving parent for item: No resource found that matches the given name 'Theme.AppCompat.Light.DarkActionBar'

    If you are looking for the solution in Android Studio : Right click on your app Open Module Settings ...

  9. 【Android】No resource found that matches the given name 'Theme.Sherlock.Light.NoActionBar'

    被这个问题困扰了好久…… 错误如下: error: Error retrieving parent for item: No resource found that matches the given ...

随机推荐

  1. sqlmap里如何添加字典

    在sqlmap的目录下有那么一个目录.即"TXT"目录. 该目录下是放字典的. 我在日一个站的时候没有破解出表明.然后不小心下载到了数据库. sqlmap无法猜出表是啥.ps:ac ...

  2. 机器学习算法( 五、Logistic回归算法)

    一.概述 这会是激动人心的一章,因为我们将首次接触到最优化算法.仔细想想就会发现,其实我们日常生活中遇到过很多最优化问题,比如如何在最短时间内从A点到达B点?如何投入最少工作量却获得最大的效益?如何设 ...

  3. 迅搜sdk试用

    1. sdk支持PHP 2. 针对mysql的某个库的某个表??进行索引,简单的说就是一个project,需要对应一个配置文件: 3. 分索引服务与搜索服务两个,另带中文分词功能:索引数据会有演示,但 ...

  4. Unity3D避免代码被反编译

    1.Unity编译后最终会将代码编译在dll里面,无论是ios还是Android解开包以后都可以拿到dll,路径在Data/Managed/Assembly-CSharp.dll 2.IOS其实不用做 ...

  5. datatable.js 服务端分页+fixColumns列固定

    前言 记得还是15年的时候,工作需要,独自写后台管理系统..记得那时候,最让我头疼的不是后台逻辑,而是数据的列表展示. 列很多的时候,页面显示问题;分页样式问题;表格样式问题;数据加载...很多细节的 ...

  6. TortoiseGit上传项目代码到github方法(超简单)

    Github是咱广大开发者用的非常多的项目代码版本管理网站,项目托管可以是私人的(private)或者公开的(public),私人的收费,一个月7美金.咱这里就只说我们个人使用的,一般都是代码对外开放 ...

  7. node.js中的事件循环机制

    http://www.cnblogs.com/dolphinX/p/3475090.html

  8. js数组的方法

    arrayObject.join(separator) 将数组以separator字符为间隔转化为字符串并返回,如果不传,默认为逗号.此方法不会改变原数组 let arr = [1,2,3]; arr ...

  9. 线段树lazy标记??Hdu4902

    Nice boat Time Limit: 30000/15000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) To ...

  10. Android开发:《Gradle Recipes for Android》阅读笔记(翻译)4.4——自定义代码集合

    问题: 你想要在项目中使用非标准的代码目录. 解决方案: 在gradle的build配置里面使用sourceSets属性. 讨论: Android分发的samples里面使用多个代码目录,使得通用的文 ...