昨天添加Android兼容包,碰到了很多问题,在这里记录一下,让后面的路好走。
如何选择兼容包,
请参考Android Support Library Features(二)
一、下载Support Library
方法1:右击项目→选择Android Tools→Add Support Library…
方法2:
通过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/目录。
二、添加V4兼容包(v4 appconpat)
- 确保你已经利用SDK Manager下载了Android Support Library 。
- 在你的项目的根目录下创建一个libs/目录。
- 从你的Android SDK安装目录(例如,<sdk>/extras/android/support/v4/android-support-v4.jar)下拷贝JAR文件到你项目的libs/目录下。
- 右键点击JAR文件并选择Build Path > Add to Build Path。
三、添加V7兼容包(v7 appconpat)
创建一个基于support library代码的 library project:
- 确保你已经利用 SDK Manager下载了Android Support Library。
- 创建一个library项目并且确保需要的JAR文件包含在了项目的build path中:
- 选择File > Import。
- 选择Existing Android Code Into Workspace 并点击Next。
- 浏览SDK安装目录,并进入Support Library目录下。例如,如果你要添加appcompat项目,浏览 <sdk>/extras/android/support/v7/appcompat/。
- 点击Finish引入项目。对于v7 appcompat项目,你将看到一个标题为android-support-v7-appcompat的新项目。
- 在新项目中,展开libs/ 文件夹,右键点击每一个.jar文件,并选择Build Path > Add to Build Path。例如,当创建v7 appcompat项目时,同时将android-support-v4.jar和android-support-v7-appcompat.jar文件添加到build path中。
- 右键点击library项目文件夹并选择Build Path > Configure Build Path。
- 在Order and Export选项中,在刚刚添加到build path中的.jar文件上打勾,这时这些文件成为项目可用的了并依赖于这个library项目。例如,appcompat项目要求同时导出android-support-v4.jar和android-support-v7-appcompat.jar文件。
- 去掉Android Dependencies上的对勾。
- 点击OK完成设置
现在你拥有了一个包含你选择的Support Library的library项目,你可以在一个或多个应用项目中利用这个Support Library。
现在我们要向应用工程(需要加入Support Library的工程)添加库:
- 在项目浏览器中右键单击你的项目,选择Properties。
- 在左边的分类面板中,选择Android。
- 在Library面板中,点击Add。
- 选择库项目,然后点击OK。例如,appcompat项目会在列表中显示为android-support-v7-appcompat。
- 在properties窗口中,点击OK。
遇到的问题:
1、java.lang.NoClassDefFoundError: android.support.v7.appcompat.R$attr
这个问题,是因为app在运行时没有找到对应的V7兼容包导致的,请参考文中 添加V7兼容包(v7 appconpat)
2、java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
完成上文提到的1,3步骤后,修改android:theme为@style/Theme.AppCompat
参考链接
Android Support Library Features(二)
Android Support Library Setup(三)
在Eclipse添加Android兼容包( v4、v7 appcompat )(转)的更多相关文章
-
在Eclipse添加Android兼容包( v4、v7 appcompat )
昨天添加Android兼容包,碰到了很多问题,在这里记录一下,让后面的路好走. 如何选择兼容包, 请参考Android Support Library Features(二) 一.下载Support ...
-
在Eclipse添加Android兼容包( v4、v7 appcompat )[转]
昨天添加Android兼容包,碰到了很多问题,在这里记录一下,让后面的路好走. 如何选择兼容包, 请参考Android Support Library Features(二) 一.下载Support ...
-
Android兼容包multidex的开发和构建方法
在Android开发中,函数方法超过65k限制后,我们就常常会用到multidex分包解决,但是multidex的配置,对系统apk的构建.签名.打包复杂性大大的增加,严重的降低了构建效率.那这个问题 ...
-
Android兼容包之MultiDex
一.MultiDex的产生背景 当Android系统安装一个应用的时候,有一步是对Dex进行优化,这个过程有一个专门的工具来处理,叫DexOpt.DexOpt的执行过程是在第一次加载Dex文件的时候执 ...
-
Eclipse添加中文语言包与下载
从Eclipse官网下载最新版本的Eclipse都是英文版的,不自带语言包.现在Eclipse有一个语言包项目,叫Eclipse Babel Project.如果需要语言包,可以联机从这儿下载. Ba ...
-
【转】如何手动添加Android Dependencies包
在ADT16 之前可以在工程里面做关联,eclipse会在工程上自动添加ReferenceLibrary.新版本的ADT修改了第三方jar的导入方式,只需要在工程目录下新建libs文件夹,注意是lib ...
-
Eclipse导入android项目包xml报错未生成R文件
最近很是头痛的就是项目带回家做的时候.导入各种问题.自从升级23以后. 生成的带appcompat_v7包.copy时不论是新建还是导入这个包,项目都会报错. 网上的方法试了各种clean各种fix等 ...
-
如何手动添加Android Dependencies包
在ADT16 之前可以在工程里面做关联,eclipse会在工程上自动添加ReferenceLibrary.新版本的ADT修改了第三方jar的导入方式,只需要在工程目录下新建libs文件夹,注意是lib ...
-
eclipse添加缺失的包/src/main/resource
右键>>build path>>source 添加文件夹
随机推荐
-
返回顶部的功能 div固定在页面位置不变
1.你在网上搜索的时候,可能会搜索到div固定在页面上,不随滚动条滚动而滚动是用CSS写的,写法是position:fixed;bottom:0; 但是这个在iframe满地跑的页面实际开发中,有啥用 ...
-
Unity Editor开发
SerializedObject SerializedObject.Update()更新所有序列化对象的值:SerializedObject.ApplyModifiedProperties()应用序列 ...
-
数据类型/强制类型转换 和运算符---标识符规则/关键字 a++和++a区别
3.2关键字都是小写,TRUE FALSE NULL都不是Java关键字 3.3数据类型 变量相当于一个有名称的容器,该容器用于装各种不同类型的数据 Java类型分为2种 基本类型: 引用类型: 基本 ...
-
MyEclipse 2015 Stable 1.0下载安装破解日志
前言 这2天下载了许多myeclipse版本,基本上是14/15版本的,各种破解均告以失败,这次下载了贴吧一个吧友提供的版本,现已破解.破解结果现不好说--目前已装SVN,根据经验,只有等待一定时间验 ...
-
“adb server is out of date. killing.... ADB server didn&#39;t ACK * failed to start daemon * ”
*的adb: “adb server is out of date. killing.... ADB server didn't ACK * failed to start daemon * ” ...
-
15、Cocos2dx 3.0游戏开发找小三之Sprite:每一个精灵都是上辈子折翼的天使
重开发人员的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/30475395 Sprite Sprite 能够说是 ...
-
公司内网Debian Server上的openvpnserver搭建并通过SSH隧道转发到广域网
因为戴维营公司在长沙的学员,研发人员和北京的研发人员须要协同研发,故须要让北京的兄弟们增加到长沙办公室的内网,訪问版本号 管理server,于是採用在内网server上搭建一个OpenVPN服务,并把 ...
-
【复制】【编码】MySQL复制中的编码问题
编码背景知识 Latin-1,全称ISO 8859-1 Latin 1 对ASCII的拉丁语扩展 向下兼容ASCII,其编码范围是0x00-0xFF,0x00-0x7F之间完全和ASCII一致,0x8 ...
-
关于CSDN, cnblog, iteye和51cto四个博客网站的比较与分析
http://blog.csdn.net/pkucl1/article/details/6629819 CSDN: http://blog.csdn.net/ cnblog: http://www ...
-
getContext在谷歌浏览器中,使用时要先加载canvas对象,否则会提示&#39;getContext is null&#39;
<body> <canvas id=" style="border:1px solid #c3c3c3;"> Your browser does ...