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


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

  • 相关阅读:
    Ubuntu:Failed to restart network.service: Unit network.service not found.
    解决 yarn或pnpm : 无法加载文件 C:\Users\hp\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本
    MSSQL表名、列名转大写SQL语句
    js 控制打开网页窗口的大小位置 sk
    js实现公历(阳历)和农历(阴历)的换算 sk
    一个怂女婿的成长笔记【二十四】
    牛顿迭代法(大白话)
    Source Generator实战
    i=i++
    记录下三种排序,冒泡,选择,和快速。
  • 原文地址:https://www.cnblogs.com/adm1989/p/3288498.html
Copyright © 2020-2023  润新知