由於在Android源碼中,很多方法、成員、類、包都被打上@hide標籤,這些成員在SDK中沒有公開,以至於在編譯Launcher源碼時最常遇到的類android.view.View的成員mScrollX無法訪問。
下面說說如何解決這個問題。
1,準備好編譯後的Android源碼。
2,在該源碼的out目錄下尋找包含你所用隱藏類的jar檔案,通常檔案名稱為classes.jar。例如framework的jar檔案為out\target\common\obj\JAVA_LIBRARIES\framework_intermediates\classes.jar。
3,在eclipse的Android項目中,選擇項目屬性->Java Build Path->Libraries->Add Library->User Library->Next-> UserLibraries進入到User Libraries管理介面,點擊New建立一個User Library,比如android_framework,點擊Add Jars把Jar包加入到建立的User Library中,最後點擊OK就可以了。
注意:為了訪問因此成員,需要改變類搜尋順序,選擇項目屬性->Java Build Path->Order and Export,把所建立的User Libraries移到Android SDK的上面。
這個時候你的eclipse中的錯誤應該已經減少,甚至沒有了。
要想在模擬器上馬上看效果的話,按照以下方式進行修改:
改掉原始包的名字,切記使用eclipse的重新命名機制(在包名上按F2可修改),不僅是類的引用,還有很多xml檔案內部的引用(如import com.android.launcher3.R;),只要重新命名不錯,這些都可以一次性搞定的。最後在AndroidManifest.xml檔案裡面,找到這句話刪除掉(android:sharedUserId="android.uid.shared")。到現在為止,你就擁有了自己的Launcher了!
關於如何調試代碼的問題請參考以下網址:
原帖地址:http://blog.163.com/sxs_solo/blog/static/2633338200931385520714/
eoe地址:http://www.eoeandroid.com/thread-22210-1-1.html
編譯好的代碼見下面這個文章:
【FF7】共用ADW_Launcher和Launcher2已配置好的Eclipse項目源碼檔案