• android support的作用及其常见错误的解决


    首先我们要明白这些包到底是干什么用的

    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包,位置为..sdkextrasandroidsupport。如果想用v7的包,直接到..sdkextrasandroidsupportv7appcompatlibs下拿就行了,其他类同。不仅版本一致,而且版本都是与当前sdk的版本一致的

    可能遇到的问题一: styles......No resource found

    resvaluesstyles.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去获取,路径是sdkextrasandroidsupportv7appcompat,把这个library通过eclipse导入(import)。然后之前的项目添加该lib,再clean下。这样上面的问题可以搞定

    可能遇到的问题二:values-v11,values-v21,values-v17等等下的No resource found

    appcompat
    esvalues-v21styles_base.xml:75: error: Error 
    retrieving parent for item: No resource found that matches the
     given name 'android:Widget.Material.ActionButton'.
    
    appcompat
    esvalues-v11	hemes_base.xml:178: error: Error:
     No resource found that matches the given name: attr 'android:windowActionBar'.
    
    appcompat
    esvalues-v14	hemes_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,来允许最低版本

  • 相关阅读:
    家庭记账本_2
    家庭记账本_1
    安卓学习进度_25
    安卓软件学习进度_24
    对体温上报app的总结
    安卓软件学习进度_23
    安卓软件学习进度_22
    安卓开发
    安卓开发
    安卓开发
  • 原文地址:https://www.cnblogs.com/ideal-iover/p/5278215.html
Copyright © 2020-2023  润新知