GitHub上最火的开源项目SlidingMenu导入出错的终极解决方案

SlidingMenu开源项目下载地址https://github.com/jfeinstein10/slidingmenu

Actionbarsherlock开源项目下载地址:http://actionbarsherlock.com/download.html


导入步骤如下:

1.将下载的Actionbarsherlock中/actionbarsherlock文件夹复制到workspace(你的项目工作空间),改名为Actionbarsherlock,从eclipse中操作new->project->Android Project from Existing Code将项目添加进去,target改为api14以上。

2.将下载的slidingmenu中/library文件夹复制到workspace(你的项目工作空间),改名SlidingMenu,从eclipse中操作new->project->Android Project from Existing Code将项目添加进去,target改为Google APIs 14以上。或者打开project.properties:target=Google Inc.:Google APIs:14或更高。

3.这样SlidingMenu就可以用在自己项目中了。让我们来运行例子。解压slidingmenu中/example。从eclipse中操作new->project->Android Project from Existing Code将项目添加进去,target改为api14以上。运行看看效果。2.1以上的系统都可以运行。


导入之后可能会出现的问题如下:

1、SlidingMenu library project出现错误

  • Console error: Unable to resolve target ‘Google Inc.:Google APIs:16.

    Fix: 进入Properties检查Target sdk是否选择了 Google APIs.

  • List of errors: ACTION_POINTER_INDEX_MASK cannot be resolved android.
    HONEYCOMB cannot be resolved or is not a field
    LAYER_TYPE_HARDWARE cannot be resolved or is not a field
    LAYER_TYPE_NONE cannot be resolved or is not a field
    MATCH_PARENT cannot be resolved or is not a field
    The method getLayerType() is undefined for the type View
    The method setLayerType(int, null) is undefined for the type View

    Fix: 将manifest里面的min sdk version 改为你当前用到的sdk版本,7

2、SlidingMenu  example project出现错误

  • 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

    Fix: 这是由于jar包版本不一致导致的,检查SlidingMenu和Actionbarsherlock中的\libs文件夹里的哪个android-support-v4.jar版本比较新,用新的替换掉其中的老版本. 如果错误还是会出现,就clean项目并重启eclipse.

  • 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
    The method onOptionsItemSelected(MenuItem) in the type Activity is not applicable for the arguments
    The method onOptionsItemSelected(MenuItem) of type BaseActivity must override or implement a supertype method
    The method onOptionsItemSelected(MenuItem) of type ResponsiveUIActivity must override or implement a supertype method

    Fix:打开SlidingMenu library project里SlidingFragmentActivity这个类并在声明前添加以下代码:

    import com.actionbarsherlock.app.SherlockFragmentActivity; 
    然后,将下面这个父类:

    public class SlidingFragmentActivity extends FragmentActivity implements SlidingActivityBase {
    换成Actionbarsherlock里的另外一个父类(如果此时Library没有引用Actionbarsherlock库项目,则先引用之):

    public class SlidingFragmentActivity extends SherlockFragmentActivity implements SlidingActivityBase { 

    附上运行效果图之一:



  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值