Android 导入v7包常见错误,以及项目引用v7包错误解决

android下v4    v7   v21等包是android系统的扩展支持包,就想windows的系统补丁一个道理。

android的扩展包主要是用来兼容低版本的,比如android3.0以后出现了actionbar,如果要使用actionbar,那么手机系统必须在3.0以上才能使用,这样将会导致很多用户不能安装apk从而损失用户;(有人会想,为什么不直接将新出来的东西全部打包到sdk中而是提供各种支持包?我是这样理解的,比如:如果将原生actionbar直接打包到低版本的sdk包中,而低版本手机里面却没有相关的代码,这样即使在开发的时候能在兼容低版本,但运行在低版本手机上时,应用去系统中找actionbar,发现没有就会报错,所以这种做法是不能实现的)

google开发人员将高版本出来的新东西做了很多向下兼容的支持包,这就是v4、v7...等包的作用,实现的原理就是模仿高版本的新内容,使用低版本去实现(比如v7包中actionbar,其实就是自定义了一个title栏,然后上面有title、logo、back键等等,给这些控件赋值或者设置属性都是模仿原生actionbar的属性名称,具体请关注我下一篇博客---使用actionbarsherlock替换原生actionbar)

然而,当我使用v7包的时候却不是那么顺畅,在这里总结一下使用的步骤、遇到的错误以及解决的办法:

1、导入v7包:

Eclipse——>Import--->Existing Android Code Into Workspase--->D:\IDE\ANDROID64\sdk\extras\android\support\v7\appcompat;(导入成功后,在工作空间里就会有这样一个项目,打开看看里面的内容,发现src目录下是空的,为什么没有代码呢?原来v7包将java源代码打成了jar包,在项目libs目录下;整个工程的结构就是引用了v7-appcompat.jar,然后一个res目录;其实这个res目录才是重点,如果没有res目录,v7包的使用就不会这么麻烦,直接将v7-appcompat.jar拷贝到项目中就行了,但是这个jar包中是没有资源目录的,这就是为什么v7支持包需要一库工程的形式供开发者使用。)

2、接下来会发现v7工程报了错误:

打开资源目录,错误,这是android为了兼容和适配不同版本系统而细分了很多个values目录,values-v21就是Android5.0系统加载的资源目录(根据values后面的后缀,可区分不同版本、不同分辨率、不同语言等从而兼容不同版本、适配不同屏幕大小和不同国家语言),有人会尝试把这些“多余”的values包删除掉,就不报错了,但是发现删除这个后又有了新的错误,永无止境,况且即使你把所有的错误都删除,估计这个v7包也没什么用了,所以这种解决办法是不可行的。

刚刚上面说到了values-v21是Android5.0加载资源的目录,但是我发现我的编译版本是4.0,这就是为什么报错,因为编译版本是4.0,在应用编译打安装包时,她不认为这个应用会安装到5.0上,因为target是4.0,所以它不会为5.0做任何事情,也就更不会将values-21打包进去,既然不会打包进去,存在就没什么价值,所以认为Android4.0应用中不应该存在这个values-21,所以就报错了;解决办法就是讲编译版本提高到5.0以上:

解决办法:只要将编译版本提高到5.0就行(右击-->Properties--->Project Build Target--->勾选5.0———>clean库工程)

3、我们的工程应用库工程后,还是报错,同样的道理,因为我们的工程将v7库工程引用进来后,我么你的资源目录里面就包括了v7的资源目录,里面照样也会有values-v21等,我已也要将我们的工程编译版本提高到5.0,然后clean

4、完成上述操作后,发现工程没有错误了,但是一运行,有报错:

它说在support-v7包的ActionBar中有多个dex文件,但遇到这种错误,一般都是重复引入jar包造成的;

再看看工程的build path:

果然发现引入了两个v4和v7包,这是为什么?

原来在我们自己的工程libs下有一个v4包和一个v7包,而v7库工程里面也有,我的工程又引用了v7库工程,这样将v7库工程下的v4和v7包也引入了,所以导致工程中重复了:

找到了原因,问题就迎刃而解了,打开工程的build path,Remove掉我们工程中的两个支持包就行:

运行项目,大功告成

时间: 2024-10-25 05:22:24

Android 导入v7包常见错误,以及项目引用v7包错误解决的相关文章

Android 导入v7包常见错误,以及项目引用v7包错误解决,androidv7

Android 导入v7包常见错误,以及项目引用v7包错误解决,androidv7 android下v4    v7   v21等包是android系统的扩展支持包,就想windows的系统补丁一个道理. android的扩展包主要是用来兼容低版本的,比如android3.0以后出现了actionbar,如果要使用actionbar,那么手机系统必须在3.0以上才能使用,这样将会导致很多用户不能安装apk从而损失用户:(有人会想,为什么不直接将新出来的东西全部打包到sdk中而是提供各种支持包?我

项目jar包管理,使用 .userlibraries 文件增加jar包的可移植性,明确jar包依赖,多项目共用jar包里

当一个普通的项目,在不适用maven 等jar包管理工具的时候,通常我都会直接把jar 包复制lib下,并且在build path 中直接添加额外jar包,或者使用user_libraries包所用的jar包 都放到一个文件夹里,然后让项目依赖该user_libraries 包.如果我又新建了一个项目,但是只有部分jar 包不一样或者版本不一样,通常我会再次新建一个文件夹把这些jar 放进去, 如果jar包出现问题我要一个个去翻看lib下的文件,看着很不方便,也不方便管理. 有没有像maven

android studio生成aar包并在其他工程引用aar包

1.aar包是android studio下打包android工程中src.res.lib后生成的aar文件,aar包导入其他android studio 工程后,其他工程可以方便引用源码和资源文件 2.生成aar包步骤: ①.用android studio打开一个工程,然后新建一个Module,新建Module时候选择Android Library,后面按新建普通工程操作 ②.新建Module 类型为android Library 后如下图所示 ③.在新建的Module中编写完代码后,接下来编

手动给帮助类打 jar包 和 给Web项目打 war包

正确配置完Java JDK之后,就可以直接调用jar命令了,或者也可以进入jdk的bin目录下运行jar.exe命令 1. 把已经写好的帮助类打成 jar 包    (1)  打开进入 dos 命令提示窗口,直接 输入 jar 后 会出现 如下 所示的帮助命令:     其中( -c.-v.-f  )这三个命令很常用: -c 创建新的文档 -v 生成详细输出到标准输出上 -f 指定存档文件名. Microsoft Windows [版本 6.1.7601] 版权所有 (c) 2009 Micro

java项目打成jar包并部署到Linux服务器,以及在shell脚本中启动java程序

一.在eclipse中,将java程序打成可运行的jar包 1.只需要把src目录和lib目录下的第三方jar打包即可 2.选中这两个位置后,一路"next",然后"finish",生成jar包 3.生成项目结构的zip包 然后,把项目打成zip包,注意只选需要的程序目录结构和配置文件夹即可 4.点击"finish",完成zip包的压缩 5.把生成的jar包和zip包上传到linux服务器的程序安装目录(根据项目组不同,程序安装目录会不同,但是一

Android Studio使用远程依赖时下载不了jar包的解决方法

使用AS很大的一个好处就是可以使用在线jar包,只需在引用jar包的时候在版本后加上+,比如: compile 'com.facebook.fresco:fresco:0.1.0+' 这样不用在jar包作者更新后再次手动更新jar包获取最新版本. 但是很多人包括我自己在不了解gradle使用的情况下,引用在线jar包时怎么都下载不下来,例如提示: 这尼马是没FQ么,不对,goagent更新AS都没问题,排除了墙的问题后一时想不到问题点在哪了. 早上请教了下同样出了此问题的基友,他解决了,他真的解

android导入项目常见问题解决

android导入项目常见问题解决 标签: androideclipseapipropertiescompilertools 2011-12-25 21:52 11268人阅读 评论(7) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载. 初学android,最近在使用现成的代码的过程中发现直接导入的eclipse项目大都不能直接使用,总结下出现的问题和解决方案: 1.project.properties或default. Properties的问题 有的项目这两个问题不能在ec

android导入项目出现style错误,menu错误

android导入项目出现style错误,menu错误 style //查看 res/values/styles.xml 下的报错点. <style name="AppBaseTheme" parent="Theme.AppCompat.Light"> //把这个改成 <style name="AppBaseTheme" parent="android:Theme.Light"> //路径: res/v

android导入项目出现R文件不能生成

关于原因网上有好多,比如 1.有时候eclipse不自动编译,把project clean一下,让R.java重新生成 2.选择菜单  Project >> Clean ,前提是勾选上 Bulid Automatically(自动构建部署) , 点Clean后会重新构建项目,因为一般情况下,R.java文件在这个时候会重新更新生成一边,如果工程有错,就不会自动生成. 3.选择工程,右键 Android Tools >> Fix Project Properties 这个操作有时候可