Android低版本使用ActionBar导入v7-appcompat出现的问题

在做项目的时候,想通过ActionBar的方式来实现选项卡,actionbar是在3.0提出来的,为了做到向下兼容,需要引用 android-support-v7-appcompat项目

(由于本人eclipse里面的ADT版本不是22.6.x,所以在创建工程的时候没有生成android-support-v7-appcompat项目,所以需要单独导入此工程)


操作步骤:

(1) 首先需要导入此项目 android-support-v7-appcompat

     此项目我是从同事那拷贝过来的,因为它的ADT是最新的22.6.x, 在 ${ANDROID_SDK_HOM}\extras\android\support\v7 找到了appcompat 项目

    为了省时间我就直接将此项目拷贝过来。

   File -> Import -> Android -> Existing Android Code Into Workspace (勾选上 Copy projects into Workspace,方便以后想修改引用项目,对原有不影响,原有的相当于备份)

  导入完成后,如果在控制台出现以下类似错误提示:

   [2014-12-05 10:52:50 - android-support-v7-appcompat] Unable to resolve target 'android-16'

 那么需要修改android-support-v7-appcompat项目目录下的project.properties文件中的target值,以你当前SDK版本为准,我的SDK版本是17,所以就是target=android-17

(这里不建议直接修改这个文件,可通过 选中项目,右键属性 ->Android -> 切换SDK的方式来修改,这样项目会重新加载SDK,重新编译项目,同时project.properties文件中的target会自动被修改的)


(2) 导入完成后,开发项目引用 android-support-v7-appcompat

     选中开发项目,右键属性 ->左侧 Android -> 右侧的Library 点击Add... -> 选中 android-support-v7-appcompat -> Apply -> OK

(3) 创建Activity 继承ActionBarActivity ,发现编译报错,找不到ActionBarActivity类;

     检查了Android dependencies是有android-support-v7-appcompat.jar这个jar包的,而且这个jar就是android-support-v7-appcompat 工程libs 目录下的,

     同时在android-support-v7-appcompat.jar 里面是的 android.support.v7.app是能找到ActionBarActivity的,

    我又尝试了直接写 import ,发现只能import android.support.v7.appcompat.R(这是资源),但就是import不了android.support.v7.app

没办法,我只能这样处理了:

(a) 将引用项目的android-support-v7-appcompat 工程libs 目录下的android-support-v4.jar,android-support-v7-appcompat.jar 拷贝到开发项目工程的libs目录下,

     覆盖开发项目工程libs目录下的android-support-v4.jar(android-support-v7-appcompat.jar用的是它对应的android-support-v4.jar,所以需要覆盖工程libs目录下的android-support-v4.jar)

(b) 将 android-support-v7-appcompat 工程libs 目录下的android-support-v4.jar,android-support-v7-appcompat.jar删除掉

(c) 重新编译开发项目工程,发现OK了,能引用ActionBarActivity

      同时发现Android Private Libraries出现一个android-support-v7-appcompat.jar,原来只有一个android-support-v4.jar


就这样,问题就解决了,但就是不明白之前那样引用工程,为什么使用不了ActionBarActivity,

之前弄别的工程引用外部工程也能正常使用外部工程的某个类的,单就这个android-support-v7-appcompat 工程不行,很奇怪!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值