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

转载 2015年07月08日 12:17:23

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


        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工程报了错误:

                              

        res目录下有很多values目录,这是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掉我们工程中的两个支持包就行

(使用v7库工程中引入的支持包):

                                          

 

运行项目,大功告成

android v7包 正常导入使用方法

最近手头有项目正好要用到 android的 support v7包,里面的 actionbar 很是吸引人,然后网上就查了很多的资料,一大堆的文章包括E文,然后动手开始弄,导入 \sdk\extra...
  • zhengzemao
  • zhengzemao
  • 2014年07月30日 16:14
  • 1203

关于android中v7包(appcompat)的说明

关于android中v7包(appcompat)的说明,有需要的朋友可以参考下。   大家对于v4包都已经很熟悉了,现在在新建android项目时,v4包是默认导入的。v7包出来没多长时间...
  • lgzaaron
  • lgzaaron
  • 2016年07月01日 09:54
  • 6274

Android CardView使用和导入出错问题

Android CardView使用和导入出错问题 第一部分:导入Android CardView出错的问题。 Android CardView是Android在support.v7包里面...
  • zhangphil
  • zhangphil
  • 2015年08月12日 10:16
  • 3108

Android V7包学习笔记更新中.....

关于V4 V7 V13VX包介绍转自这里 1, Android Support V4, V7, V13是什么? 本质上就是三个java library。2, 为什么要有support库? 如...
  • lu_xin_
  • lu_xin_
  • 2016年04月12日 13:15
  • 3431

eclipse新建安卓项目低于4.0,去除v7依赖包的方法

以前低于安卓项目低于4.0,会直接添加dependencies,在最新的SDK中,新建安卓项目,如果低于安卓4.0(api14)的话,会自动添加appcompat v7包,但也许你写着项目的时候,发现...
  • qq_26819733
  • qq_26819733
  • 2016年04月21日 15:10
  • 2038

Android Studio 中依赖库v4与v7冲突问题

最近导入一个新的AS项目,gradle没有问题,run的时候一直出错。问题如下: Error:Execution failed for task ':app:transformClassesWithJ...
  • qq_27367237
  • qq_27367237
  • 2016年06月23日 10:18
  • 984

关于V7包下AlertDialog调用Dismiss的解决方法

Dialog可以算是每个项目都能使用的基础控件之一. 最近功能开发中,因为需求问题,使用到Support-V7 下的Dialog 不熟悉如何使用或者对该控件较为陌生可以参考链接:AlertDial...
  • u010940458
  • u010940458
  • 2016年06月15日 11:35
  • 2262

Android项目打包混淆问题

android 项目打包以及混淆步骤,注意事项一 打包签名在android studio插件栏中找到build,展开后找到下图中黄色图标点击之后弹出一个窗口绿色部分是你的证书直接导进来就行,橙色部分...
  • Jack_hkh
  • Jack_hkh
  • 2017年01月19日 15:25
  • 1027

eclipse创建项目时出现appcompat_v7包及解决办法

Android开发学习总结(三)——appcompat_v7项目说明 一、appcompat_v7项目说明   今天来说一下appcompat_v7项目的问题,使用eclipse创建And...
  • stodge_rman
  • stodge_rman
  • 2016年01月22日 15:38
  • 2480

使用V7包的一些问题解决方法

一、概要 最近项目用到了v7包,产生了一些问题,现在就此问题解答一下,如果有同样问题的可以参考一下。 二、主要问题 1、import V7包里的v7_appcompat,类似一个项目,(注:一般...
  • Hello201404
  • Hello201404
  • 2015年11月04日 10:00
  • 1301
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android 导入v7包常见错误,以及项目引用v7包错误解决,androidv7
举报原因:
原因补充:

(最多只允许输入30个字)