2

我有一個使用Apache HTTP庫的庫(不是Android庫)。我想在Android應用程序中使用這個庫。它也需要與其他類型的框架一起使用。這是否會導致與Android中的Apache庫發生任何衝突,並且有什麼方法可以使它在Android中包含時使用Android的Apache庫?如果不得不通過HTTP客戶端來使用,那真的很不方便。Android與庫衝突的HttpClient

+1

如果您使用的庫沒有物理地包含appache-library(例如它是jar文件),則沒有問題。 Java只會檢查這些類是否在構建路徑中,這應該是您構建Android應用程序時的情況。 –

+0

如果沒有物理包含,我的庫如何使用Apache的HTTP庫?我想我可能對我的問題有點模糊。我會編輯它。 – Eliezer

回答

2

這會帶來這取決於你如何定義「衝突」,在Android的

與Apache庫的任何衝突。

您不控制運行時類路徑,並且固件始終獲勝。因此,Android版本的HTTPClient將用於Android SDK中存在的所有HTTPClient類。

如果您的其他庫依賴於HTTPClient的不同版本,則可能有問題。

有沒有什麼辦法讓它這樣,當它被包含在Android中,將使用Android的Apache庫

你別無選擇:Android的課程將被使用,只要有一個重複。

+0

因此,如果在我的庫中確保始終使用與Android相同版本的HTTPClient,那麼在「Java」項目或「Android」項目中使用我的庫時不應該有任何問題? – Eliezer

+0

@Eliezer:是的。您的挑戰可能在於找到與Android版本(4.0.3b?)匹配的HTTPClient JAR。越接近,越好,因爲API更改的機會越少,這會導致問題。你可能會想要一個好的測試套件,它可以在Android和傳統的Java虛擬機中鍛鍊你的庫,以確保一切按預期工作。另外,請記住,HTTPClient不再是Android中的推薦解決方案 - Google現在推薦使用舊的「HttpUrlConnection」。 – CommonsWare

+0

'HttpUrlConnection'是一個標準的java類嗎?我知道這有點偏離主題,但是你會建議在Android之外使用它(特別是因爲如果這是Google爲Android推薦的類我想要使用它,並且我寧願只使用一個類試圖找出如何使用Android的'HttpUrlConnection'和其他地方的'HTTPClient')? – Eliezer