2012-09-28 40 views
0

我正在爲我的項目開發android sdk,爲此我在sdk中使用google-http-java-client 。 我想在google-http-java-client中進行一些更改,以便我可以在我的應用程序中使用它。例如 我想在com.google.api.client.http.HttpHeaders中添加一些自定義標題。爲此,我已經提取源代碼,但即時獲取com.google.common.primitives.UnsignedBytes中的錯誤爲因爲sun.misc.Unsafe無法在修改庫時解決錯誤

import sun.misc.Unsafe無法解析。

那麼有沒有其他方法可以修改這個庫?

回答

0

您正在依靠非Oracle提供的Oracle/Sun JDK提供的東西。簡短的回答:不要這樣做。長答案:見'Why Developers Should Not Write Programs That Call 'sun' Packages'

+0

這意味着我不能使用這個庫到我的項目中...... – Prachi

+0

@curious_mind:當然,你可以,以編譯的形式使用它並不是問題,如果你真的需要使用源代碼,你只需要忽略違規的部分。除非您需要,否則您可以省略全班'UnsignedBytes'。 – maaartinus

+0

@EJP:你錯了,沒人依靠不安全。這不是他在Guava圖書館出現的,他們不依賴於它,因爲它們提供了一個後備解決方案。 – maaartinus

1

當然。 UnsafeComparator使用Unsafe,它不在Android中的默認類路徑中,但也有PureJavaComparator作爲後備提供。刪除處理Unsafe的整個部分應該就足夠了,因爲在getBestComparator()中,它通過名稱查找,並且在使用後備異常的情況下。


我想它不存在的Android,但我相信凱文說,它的作用。無論如何,說它不在默認的類路徑上肯定是正確的(不管它是否存在)。

+1

你確定sun.misc.Unsafe在Android中不存在嗎?我會非常驚訝。更可能的是,它不在默認的編譯類路徑中。 –

+0

@Kevin Bourrillion:我不確定,這只是一個基於我所聽到的假設。但根據我的經驗,刪除引用可能比找到要包含在類路徑中的要快得多。 – maaartinus

相關問題