1.首先下载actionbarsherlock和SlidingMenu源代码

  由于在SlidingMenu项目中,styles.xml文件使用到了actionbarsherlock里面的主题定义,所以在使用的时候需要先导入actionbarsherlock

  两个项目的源代码地址为:

    https://github.com/jfeinstein10/SlidingMenu

    http://actionbarsherlock.com/

2.导入源代码

  运行SlidingMneu需要使用到actionbarsherlock和SlidingMenu两个lib,所以在使用项目之前,需要先将那两个lib导入,需要注意的是,因为两个lib都使用到同一个依赖包:android-support-v4.jar,所以得保证两个lib里面的该包使用的同一个版本。(个人使用经验,从网上下载的两个lib里面的该包版本不一样,直接将SlidingMneu里面的包复制到actionbarsherlock里面)

  a.首先导入actionbarsherlock

  下载好源代码之后,在Eclipse里面导入已经存在的Android项目,选择ActionBarSherlock-4.4.0下面的actionbarsherlock这个目录,导入的时候会出现SDk版本问题,Eclipse会直接进行修复直接,或者直接使用Android--Tools--Fix Project property.

  

  b.导入SlidingMenu_lib

  在github上面下载好代码之后解压,在Eclipse里面File--New--Other--Android Project from existing code,导入jfeinstein10-SlidingMenu-7ebe327里面的library,最好把项目重命名一下,因为library很可能会和其它包在名字上面冲突。

  

  因为SlidingMenu里面使用到actionbarsherlock,在SlidingMenu_lib代码的com.jeremyfeinstein.slidingmenu.lib.app包下面修改以下3个文件,将Android系统自带的如FragmentActivity替换成SherlockFragmentActivity,继承actionbarsherlock里面的定义的文件。

     SlidingFragmentActivity.java   //FragmentActivity替换成SherlockFragmentActivity

     SlidingListActivity.java、       //ListActivity替换成SherlockListActivity

      SlidingPreferenceActivity.java   //PreferenceActivity替换成SherlockPreferenceActivity

  修改之后,选择项目,右键Properties--Android---Is Library,将actionbarsherlock作为依赖包导入SlidingMenu_lib

  

  c.导入SlidingMenu示例代码

  导入jfeinstein10-SlidingMenu-7ebe327目录下面的example目录,使用b步骤里面的方法,导入两个actionbarsherlock和SlidingMenu两个依赖lib,程序中的错误都解决,可以直接运行。

操作过程遇到的问题:

1.直接导入jfeinstein10-SlidingMenu-7ebe327目录下面的example实例,出现如下错误:

解决方法:按上面的步骤依次进行导入

2.导入两个lib之后出现的问题:

  Console error: Found 2 versions of android-support-v4.jar in the dependency list,but not all the versions are identical (check is based on SHA-1 only at this time). Jar mismatch! Fix your dependencies

问题原因:是两个jar包版本不一致

解决方法:问题原因是两个jar包版本不一致,直接使用较新的android-support-v4.jar版本替换旧版本

3.没有修改SlidingMenu_lib里面的文件

  List of errors: The method getSupportActionBar() is undefined for the type BaseActivity

  The method getSupportMenuInflater() is undefined for the type BaseActivity

  The method onCreateOptionsMenu(Menu) of type BaseActivity must override or implement a supertype method

问题原因:函数没有定义,需要继承于actionbarsherlock里面的类

解决方法:在SlidingMenu_lib代码的com.jeremyfeinstein.slidingmenu.lib.app包下面修改以下3个文件,修改为类似于下面的

4.case expressions must be constant expressions 错误

问题原因:是ADT14后Android库工程中R.class中的资源常量不在为final类型,原因见http://tools.android.com/tips/non-constant-fields 官方解释

解决方法:方法是将switch 转化成if-else语句,这在eclipse中非常容易实现,将光标置于switch关键字上,按ctrl+1,进行装换

SlidingMenu源代码导入及错误分析和解决方法的更多相关文章

  1. MySQL常见错误分析与解决方法总结

    MySQL常见错误分析与解决方法总结 一.Can't connect to MySQL server on 'localhost' (10061)翻译:不能连接到 localhost 上的mysql分 ...

  2. 可遇不可求的Question之导入mysql中文乱码解决方法篇

    可遇不可求的Question之导入mysql中文乱码解决方法篇 先 set names utf8;然后 source c:\1.sql ?

  3. phpmyadmin数据导入最大限制的解决方法

    mysql导入文件最大限制更改解决方法:phpmyadmin库导入出错:You probably tried to upload too large file. Please refer to doc ...

  4. windows server,nginx安装,配置,运行nodeJS后端的web项目的实现,以及错误分析及解决方法

    一.安装nginx 下载windows版nginx (http://nginx.org/download/nginx-1.12.2.zip),之后解压到需要放置的位置(C:\nginx) 二.将Ngi ...

  5. 转MySQL常见错误分析与解决方法总结

    一.Can't connect to MySQL server on 'localhost' (10061)翻译:不能连接到 localhost 上的mysql分析:这说明“localhost”计算机 ...

  6. eclipse导入项目报错解决方法

    1.导入项目之前,请确认工作空间编码已设置为utf-8:window->Preferences->General->Wrokspace->Text file encoding- ...

  7. eclipse一直卡住,出现 “android sdk content loader 0%” 卡住的错误分析及解决方法

    分析:这种问题之前没有遇到过,也不知道什么原因,直接去网上查询,打开www.stackoverflow.com,输入要查询问题的关键词,我们输入 “android sdk content loader ...

  8. R6010 -abort() has been called错误分析及其解决方法

    近期使用vs2010编程出现下面问题.在网上收集了大家的意见之后,整理了一下 导致出现这种原因有: 1.非法指针訪问和内存泄漏 2.大家再查查吧.一定是指针出现故障了.设置的指针范围跟你执行的不正确 ...

  9. mysql数据库数据(字段数过大)太多导入不了的解决方法

    mysql数据库数据(字段数过大)太多导入不了的决方法: 1.打开navicat 工具 2.在数据库上右键,执行右键菜单命令“命令列界面” 3.在打开的窗口中,运行set global max_all ...

随机推荐

  1. Notification(一个)——使用演示样本的基础知识

    main.xml如下面: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" ...

  2. 【百度地图API】百度API卫星图使用方法和卫星图对比工具

    原文:[百度地图API]百度API卫星图使用方法和卫星图对比工具 百度地图API推出卫星图接口也有一个月啦~ 本文除了介绍如何使用百度地图API来操作卫星图外,还顺带制作了个卫星图对比工具. 一.百度 ...

  3. EasyUI Combobox 默认设置

    /** *绑定运营商,默认设置, 演出CMCC, 传统的价值观念1 */ $('#operatingId').combobox({ url:'data_url', valueField:'id', t ...

  4. wamp 已安装cakephp Fatal error: You must enable the intl extension to use CakePHP. in XXX

    今wamp已安装cakephp3.x什么时候.报告这样的错误:Fatal error: You must enable the intl extension to use CakePHP. in D: ...

  5. asp.net [AjaxMethod]

    AjaxPro.2.dll cs 代码 using AjaxPro; Utility.RegisterTypeForAjax(typeof(BOMdr_KT)); [Ajax.AjaxMethod() ...

  6. datatables表格

    datatables表格 并不是所有的后台开发都有美工和前端工程师来配合做页面,为了显示数据并有一定的美感,jQuery的DataTables插件对于像我这样的前端菜鸟来说真是雪中送炭,当然对于专业的 ...

  7. 快速构建Windows 8风格应用6-GridView数据控件

    原文:快速构建Windows 8风格应用6-GridView数据控件 本篇博文主要介绍什么是GridView数据控件.如何构建常用的GridView数据呈现样式. 什么是GridView数据控件? G ...

  8. 页面中引入js的几种方法

    通常大家最为熟悉的是一下两种方法: 在页面中直接写入<script type="text/javascript">js代码</script>. 在页面中引入 ...

  9. 小公司免费的ERP软件

    http://www.2bizbox.cn/ https://www.odoo.com/

  10. leetcode[71] Sqrt(x)

    题目,就是实现一个开方,返回是整数.int sqrt(int x) 用二分法,因为一个数的开方肯定小于 x/2 + 1, 因为小于5的某些数的开方并不一定比x/2小,所以要+1,那么们定义一个left ...