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,進行裝換