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. CSharp设计模式读书笔记(15):命令模式(学习难度:★★★☆☆,使用频率:★★★★☆)

    命令模式(Command Pattern):将一个请求封装为一个对象,从而让我们可用不同的请求对客户进行参数化:对请求排队或者记录请求日志,以及支持可撤销的操作.命令模式是一种对象行为型模式,其别名为 ...

  2. 【IOS】 遍历info 所有内容 && 唯一的节能设备UUID

    /**获取装置imie*/ std::string DeviceInfo::getIMIE() { #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS) NSStri ...

  3. JS开发调试

    开发调试工具   页面制作之开发调试工具(1) 开发工具介绍 开发工具一般分为两种类型:文本编辑器和集成开发环境(IDE) 常用的文本编辑器:Sublime Text.Notepad++.EditPl ...

  4. 蜗牛—Hibernate之初识配置

    下载Hibernate的jar包 把下面jar文件考到项目lib下 然后在myeclipse中打开database的view视图创建一个新的数据库连接 接下来,配置连接,须要导入ORACLE的jar包 ...

  5. AlphaBlend參数BLENDFUNCTION

    AlphaBlend是Window自带的GDI函数,在作GUI的时候为了达到更美丽的效果我们经常常使用它. BLENDFUNCTION是AlphaBlend用控制透明效果的重要參数. 定义例如以下: ...

  6. file 上传文件后缀名 限制

    比如: 要求只能上传Excel <input type="file" accept="application/vnd.ms-excel,application/vn ...

  7. Delta3D 2.8版本号 预习

    http://blog.csdn.net/zhuyingqingfen/article/details/38581453 看到官网今天的更新.发现即将公布的delta3d 2.8 版本号 做了非常大的 ...

  8. 空连接ipc$入侵

    使用命令 net use url=file://\\IP\ipc$\\IP\ipc$ "" /user:"" 就可以简单地和目标建立一个空连接(需要目标开放ip ...

  9. 让Windows 8 / 8.1 以及 Windows Server 2012 / 2012 R2的桌面,显示我的电脑图标

    cmd ->  运行[rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0],然后勾上[我的电脑]即可.

  10. selenium2入门 用Yaml文件进行元素管理 (五)

    比如界面有一个按钮,id号是test.如果进行对象化的话,就是test.click就可以了.不用每次都要去创建test对象.如果id号变了,我们也只需要改一下test的名称就行了. 使用Yaml需要用 ...