2012-11-22 54 views
33

我已經實現了新的Facebook SDK 3.0測試版。該庫項目包含Android支持庫v4。我自己的proyect上也有支持庫(不過也有不同的版本)。當我添加了Facebook SDK作爲一個庫,我得到了一個錯誤的控制檯上:Facebook SDK for Android在依賴關係上覆制支持庫

Jar mismatch! Fix your dependencies 
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). 
All versions of the libraries must be the same at this time. 

我試圖排除在構建路徑的libs文件夾,但仍然是錯誤。

我必須在兩個地方放置相同的.jar。我在這裏錯過了什麼嗎?這個想法是使用我自己的項目的支持庫(以保持它的更新)。

回答

122

看來不同的項目使用兩個單獨的支持庫,因此校驗和是不同的。

您必須重複這個Facebook SDK項目和您正在構建的應用程序。

,當我得到這個錯誤是我做什麼:

  1. 右鍵單擊項目。

  2. 將鼠標懸停在Android工具上。

  3. 點擊「添加支持庫......」

  4. 接受庫的下載。

這確保了兩件事:a。您可以從Google資源獲取最新版本的支持庫,以及b。您的所有項目中都有相同的EXACT庫。

快樂編碼!

+1

好的,所以我每次更新支持庫時都必須更新兩者(我的專家和FB的庫專家)?點b是我沒有想過的。謝謝! – nsemeniuk

+0

你救了我的一天! –

+0

純粹的快樂!!! – thepoosh

1

只需刪除項目中的一個,將其從類路徑中刪除,然後嘗試重建項目。

+0

這個想法是保持在我的專家... – nsemeniuk

1

通過頂級答案中提到的菜單安裝相同版本的支持庫是一個很好的解決方案。

雖然這有時並不適用於我(我認爲這與我與Dropbox同步的Workspace文件夾有關,所以Eclipse有時不會覆蓋文件),所以我使用的方法是鏈接支持圖書館從中央的地方。

在您的SDK文件夾(例如Windows上的C:\ Program Files(x86)\ Android \ android-sdk \ extras \ android \)中有這些JAR文件,當您運行SDK管理器時正在更新,所以您只能從Facebook(或任何其他圖書館)和您的項目中引用一個。由於最終,來自JAR文件的代碼會被打包到您的classes.dex。您甚至不需要libs文件夾中的支持庫。

此外:如果您使用Gradle構建系統及其依賴關係管理,或者甚至Maven您不會遇到類似的問題,但它們需要更多的時間和知識才能正確設置。