1. SlidingMenu官方下载:https://github.com/jfeinstein10/SlidingMenu
下载下来后解包,里面有两个工程, library和 example
2. 首先导入library,编译,通过
3. 再导入example,编译,这时候报错:The method getSupportActionBar() is undefined for the type BaseActivity
参考官方的编译指导:
Setup with ActionBarSherlock
- Setup as above.
- Checkout a clean copy of ActionBarSherlock and import into your Eclipse workspace.
- Add ActionBarSherlock as a dependency to SlidingMenu
- Go into the SlidingActivities that you plan on using make them extend Sherlock___Activity instead of ___Activity.
我们看到报错的Activity继承自BaseActivity,BaseActivity又继承自SlidingFragmentActivity,SlidingFragmentActivity是在library中定义的,其又继承自FragmentActivity,根据上面官方指导,我们需要的make them extend Sherlock___Activity instead of ___Activity.,也就是将SlidingFragmentActivity(该类在library工程中)的父类FragmentActivity改为SherlockFragmentActivity
4. 下载官方ActionBarSherlock, 导入并编译通过
5. 将ActionBarSherlock库导入到SlidingMenuLibrry,同时将SlidingFragmentActivity(该类在library工程中)的父类FragmentActivity改为SherlockFragmentActivity, 编译通过:
注意:在导入ActionBarSherlock库后,可能导致SlidingMenuLibrary库编译不过,报如下错误:
错误的原因是ActionBarSherlock库后,可能导致SlidingMenuLibrary库分别引用了不同版本的android-support-v4.jar
解决方法:统一使用高版本的android-support-v4.jar
6. 再编译example,问题解决
注意ActionBarSherlock在library中导入,在example中就不需要导入了,把原来那个Library Reference ..\ABS 引用remove掉
后记:在你自己的apk中使用SlidingMenu库时,如果也遇到了类似The method getSupportActionBar() is undefined for the type BaseActivity 的报错,解决方法是一样的,如果你的工程中也引用了ActionBarSherlock,就要把它remove,应为SlidingMenuLiabrary也引用了这个库,只有引用一次就行了,否则会报错。