SlidingMenu源代码导入及错误分析和解决方法

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

  因为在SlidingMenu项目中,styles.xml文件使用到了actionbarsherlock里面的主题定义,因此在使用的时候须要先导入actionbarsherlockandroid

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

    https://github.com/jfeinstein10/SlidingMenu github

    http://actionbarsherlock.com/ express

2.导入源代码app

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

  a.首先导入actionbarsherlockide

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

  

  b.导入SlidingMenu_libthis

  在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,进行装换

相关文章
相关标签/搜索