2015-06-03 152 views
1

我代表我的兩個Android開發者團隊提出這個問題。我使用Windows,我的合作伙伴使用Macbook。當通過Git共享一個項目時,classpaths意外地搞砸了。以下是一些觀察結果:Windows和Mac上的Android庫項目

  • 引用的庫項目(最初工作)無法解析。
  • 通過'Java Build Path'中的Projects選項卡進行添加時,可以找到這些庫。
  • 但該應用程序崩潰(由於NoClassDefFoundError),再次指向一個凌亂的構建路徑結構。
  • Mac上最初引用的庫項目用作直接顯示在構建路徑中的JAR。現在他們在Android Dependencies下做,這很奇怪(前者更多)。
  • 在Windows上,上述JAR一直處於依賴關係和參考庫之下。

我想解決這個問題,我們可以在Git上共享項目並在將來無縫工作。 :)

+0

有你知道爲什麼的NoClassDefFoundError已經來到有一些辭職,這樣你們明白怎麼來的Java版本等問題 –

+0

我我不知道我明白你的意思,@NaveenTamrakar。 – SlashG

+0

首先檢查洗澡機的Java版本,並檢查在您的項目中添加的lib –

回答

1

一種選擇是:

  • 沒有版本.classpath
  • 版本類路徑模板
  • 產生依賴,其中的代碼簽出在當前平臺上正確的類路徑。

即稱爲content filter driver,這裏一個smudge腳本,其將上git checkout自動調用(因此「無縫」方面),並且將產生的實際.classpath(否則不是版本和在.gitignore添加)

http://git-scm.com/book/en/v2/book/08-customizing-git/images/smudge.png

(在 「Customizing Git - Git Attributes」 示出,從 「Pro Git book」 圖像)

請注意,您可以輕鬆地從回購刪除(無本地刪除吧).classpath

git rm --cached -- .classpath 
git add -u . 
git commit -m "Delete .classpath" 
git push 
+0

錯誤地將'.classpath'添加到提交中。另外,我對Git很陌生,之前沒有使用過「smudge」腳本。我一定會閱讀更多關於它,爲我的項目製作一個。非常感謝你! :) – SlashG

+1

@SlashG你可以很容易地刪除它(不刪除它):'git rm --cached - .classpath; git add -u。 ; git commit -m「刪除.classpath」 – VonC

+0

@SlashG一個污跡腳本可以用你想要的任何腳本語言編寫。一個bash腳本可以在Windows和Linux上運行。 – VonC

相關問題