2011-05-19 110 views
20

什麼是「項目 - > Android工具 - >修復項目屬性」Eclipse命令exaclty做什麼?我已經閱讀了很多次使用它,主要是在Eclipse中與Android R代碼問題有關的答案,但對我來說,它就像是魔法,我按它,我想它修復了一些項目屬性,但沒有任何反應。 ..沒有視覺反饋,沒有關於哪個項目屬性已被修復的信息......任何人都可以對它究竟做些什麼有所瞭解?「修復項目屬性」命令的確切含義是什麼?

THX

+1

適合初學者:請注意,修復項目屬性是通過在Android工具中右鍵單擊項目名稱找到的。 – Martin 2013-01-05 20:11:31

回答

27

通過觀察ADT源代碼,具體到FixProjectAction和閱讀源和意見,我們可以看到,它調用:

ProjectHelper.fixProject(project); 
ProjectHelper.fixProjectNatureOrder(project); 
AndroidNature.configureResourceManagerBuilder(project); 
AndroidNature.configurePreBuilder(project); 
AndroidNature.configureApkBuilder(project); 

ProjectHelper.fixProject(project)做:

  • 創建Java項目
  • 修復了類路徑條目以確保:
    • 該項目不引用任何舊android.zip/android.jar存檔
    • 的項目不使用它的輸出文件夾作爲源碼文件夾
    • 項目不引用桌面JRE
    • 項目引用AndroidClasspathContainer。

ProjectHelper.fixProjectNatureOrder(project)重新排序項目性質,使Android項目自然是第一。

AndroidNature.configureResourceManagerBuilder(project)添加ResourceManagerBuilder,如果它尚未存在。它會插入自己作爲第一個建設者。

AndroidNature.configurePreBuilder(project)添加PreCompilerBuilder(如果它尚未存在)。它會檢查ResourceManager的存在並在之後插入它自己。

AndroidNature.configureApkBuilder(project)在最後添加.apk構建器,如果它尚未存在。

最後三次調用確保您的項目具有正確的構建器。當你看到在Eclipse項目屬性的建設者節中,你將看到:

  • 的Android資源管理器第一
  • Android的預編譯器資源管理器
  • 的Android程序包生成最後的後
+0

鏈接...... – Pacerier 2014-11-20 02:49:53

1

的另一個結果在項目上運行「修復項目屬性」是指在同一工作空間中將項目引用爲Android庫的任何其他項目都可能具有在項目構建路徑的「Android依賴項」下鏈接的JAR。

這可能會導致對同一個jar文件或缺少jar文件引用的多次引用。

修復方法是從相關項目中刪除這些鏈接,刪除「Android依賴項」並重新運行「修復項目屬性」。

相關問題