android support的作用及其常见错误的解决
2016-03-15 09:59
651 查看
首先我们要明白这些包到底是干什么用的
google提供了Android Support Library package 系列的包来保证来高版本sdk开发的向下兼容性, 即我们用4.x开发时,在1.6等版本上,可以使用高版本的有些特性,如fragement,ViewPager等, 下面,简单说明下这几个版本间的区别:
Android Support v4: 这个包是为了照顾1.6及更高版本而设计的,这个包是使用最广泛的,eclipse新建工程时,都默认带有了
Android Support v7: 这个包是为了考虑照顾2.1及以上版本而设计的,但不包含更低,故如果不考虑1.6,我们可以采用再加上这个包,另外注意,v7是要依赖v4这个包的,即,两个得同时被包含
Android Support v13 :这个包的设计是为了android 3.2及更高版本的,一般我们都不常用,平板开发中能用到。
导入这些包遇见的各种各样的问题
项目中需要使用到Android support包中提供的东西,不免就要把support包放到libs下,然后使用。但我在使用android-support-v7-appcompat.jar却出现了如下问题:我明明使用了v7的包,ActionBarActivity类也导入成功了,但还是用不了~~
原来v7是对v4存在依赖的,并且两者的版本还必须一样,否则没法使用。所以只需要在网上找个v4和v7一起的资源放在一起用就行了。
Android sdk里面都自带的有这些support包,位置为..\sdk\extras\android\support。如果想用v7的包,直接到..\sdk\extras\android\support\v7\appcompat\libs下拿就行了,其他类同。不仅版本一致,而且版本都是与当前sdk的版本一致的
可能遇到的问题一: styles......No resource found
res\values\styles.xml:4: error: Error retrieving parent for item: No resource found that matches the given name 'Theme.AppCompat.Light.DarkActionBar'. 对于values这个地方产生的no resource found问题,说明是没有v7下的资源
解决方法:
添加资源库,针对上面的例子,AppCompat这个是v7里的,所以缺少的是v7的资源。从sdk去获取,路径是sdk\extras\android\support\v7\appcompat,把这个library通过eclipse导入(import)。然后之前的项目添加该lib,再clean下。这样上面的问题可以搞定
可能遇到的问题二:values-v11,values-v21,values-v17等等下的No resource found
appcompat\res\values-v21\styles_base.xml:75: error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.ActionButton'. appcompat\res\values-v11\themes_base.xml:178: error: Error: No resource found that matches the given name: attr 'android:windowActionBar'. appcompat\res\values-v14\themes_base.xml:27: error: Error: No resource found that matches the given name: attr 'android:actionModePasteDrawable'. 对于在values-v11这类针对不同android target加载的values下找不到资源 的问题,原因还是一样,找不到这个target下的资源
解决方法:
很简单,把project.properties里的target=android-8或者可能稍微高点,改到target=android-21或者更高(前提是sdk已经下载了该target的库),然后再clean下项目。这样这类问题也就解决了,当然你在Manifest里不要忘记加上uses-sdk,来允许最低版本
相关文章推荐
- Android混淆
- 在Android Studio中使用BaiduMap SDK实时获取当地位置信息
- Android中bindService的使用方法
- 在Android Studio中使用BaiduMap SDK实时获取当地位置信息
- android关于百度地图显示网格问题
- Android中获取手机支持的硬件解码器类型以及对应的解码器名称
- 从零开始的Android新项目2 - Gradle篇
- android客户端多文件上传(最简单和强悍版本),一看就懂
- Android 如何在service和BroadCastReceiver中 启动activity和alertdialog?
- Android 判断应用是否在运行以及判断处于顶层的activity
- android 禁止通知栏下拉
- 2016年3月15日Android实习日记
- Ecplise 更新代码出错:Description Resource Path Location Type The container 'Android Dependencies'
- 【Gallery3D】播放视频时上下文菜单的设置
- Android - NetworkInfo对象的isConnected()与isAvailable()
- Android 通知栏Notification
- Android开发之动画效果浅析(一)
- Android动画效果——X、Y轴抖动
- android如何让控件摆放在屏幕底部
- Android将Log写入文件