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掉我们工程中的两个支持包就行:

运行项目,大功告成

原文:http://blog.csdn.net/xmxkf/article/details/45919515

android导入工程以后报错,Android 导入v7包常见错误,以及项目引用v7包错误解决...相关推荐

  1. QT编译发布程序后报错如缺少dll、“应用程序无法正常启动(0xc000007b)”的可能解决方法

    QT编译发布程序后报错如缺少dll."应用程序无法正常启动(0xc000007b)"的可能解决方法 参考文章: (1)QT编译发布程序后报错如缺少dll."应用程序无法正 ...

  2. python打包软件后报错 :SyntaxError: Non-UTF-8 code starting with ‘\x90‘ in file 的原因及解决方法

    本篇文章主要讲解,python打包软件后报错 :SyntaxError: Non-UTF-8 code starting with '\x90' in file 的原因及解决方法 作者:任聪聪 报错说 ...

  3. [转]Android 导入v7包常见错误,以及项目引用v7包错误解决

    android下v4    v7   v21等包是android系统的扩展支持包,就想windows的系统补丁一个道理. android的扩展包主要是用来兼容低版本的,比如android3.0以后出现 ...

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

    android下v4    v7   v21等包是android系统的扩展支持包,就想windows的系统补丁一个道理 . android的扩展包主要是用来兼容低版本的,比如android3.0以后出 ...

  5. Android打电话功能权限报错,Android实现简单的拨号器功能

    简易拨号器的制作方法,具体如下 一.布局构造 android:layout_width="match_parent" android:layout_height="mat ...

  6. Adams 导入总是模型报错无法导入

    Adams 是一款用于机械系统动力学分析和模拟的软件.如果在导入 Adams 模型时报错,可能是由于以下原因造成的: 文件路径不正确:确保您输入的文件路径正确,并且该文件存在. 文件损坏:如果您的 A ...

  7. android项目模块导入eclipse编译报错,android中studio导入eclipse项目报错怎么办

    android中studio导入eclipse项目报错怎么办 发布时间:2020-07-15 17:34:45 来源:亿速云 阅读:96 作者:清晨 这篇文章将为大家详细讲解有关android中stu ...

  8. android项目模块导入eclipse编译报错,android环信demo导入eclipse编译出错

    官网最新下载的android环信sdk,导入编译出错:java.lang.RuntimeException: Unable to instantiate application com.hyphena ...

  9. 关于导入.a文件后报错Undefined symbols for architecture arm64:

    这里导致的原因可能是整个.a文件都不支持或者有几个类不支持arm64 ,也有可能是一些类库没有导入或导入不全的缘故 出现Undefined symbols for architecture arm64 ...

最新文章

  1. -16 | 12 等于多少
  2. 双鉴探测器是哪两种探测方式结合_火灾探测器、手动火灾探测器和自动火灾报警分类...
  3. RH5.4下安装samba服务器(1)
  4. Jmeter教程 简单的压力测试
  5. 黑马程序员pink老师前端入门教程,零基础必看的h5(html5)+css3+移动端前端视频教程(权重,盒子模型)
  6. 云服务器布置_【阿里云ECS】(一)云服务器上安装RStudio-server
  7. 电力笔记-30个行业专业词汇(Ⅰ期)
  8. Hibernate框架 简述
  9. iis7.5 php虚拟站点目录设置,windows2008中IIS7.5环境下 Fastcgi模式PHP配置教程
  10. [转]OpenMP 入门指南
  11. java word另存为_Java 网页html转为word并保存为doc文件
  12. java程序的开发工具是jdk,分享面经
  13. OpenGL基础28:模型
  14. 板邓:wordpress标签调用函数大全
  15. CF1093D Beautiful Graph
  16. vsftpd之启用OpenSSL认证
  17. 拼多多API接口调用方法(内附上多个可用API)
  18. 无向图全局最小边割集
  19. Gem5模拟器,详解官网教程Debugging gem5(四)
  20. Oracle 使用xtts升级11g-to-19c

热门文章

  1. 瑞星:过年购票还需谨慎病毒和网络钓鱼威胁
  2. 关于hasOwnProperty的基本概念
  3. Midjourney 使用总结
  4. Linux环境下安装软件合集【1】
  5. 01 _ 灵魂拷问:如何利用敏捷思维更好地解决实际问题?
  6. python输入个人所得税计算_用python实现个税计算器
  7. java中遍历是什么意思_java中的遍历总结与不同.
  8. 针对GEE中的Landsat 8 sr产品去云处理
  9. 计算机职业道德英语作文,2015年考研英语作文万能模板:职业道德类
  10. 【Zotero高效知识管理】(2)Zotero的安装、百度云存储配置及常用插件安装