我正在編寫一個利用Firebase和RealtimeDB的Java應用程序。在JUnit中模擬Firebase
在寫我的單元測試,我遇到了在一個相當奇怪的問題火力地堡類不能內部JUnit的加載,扔的NoSuchMethodError: java.lang.NoSuchMethodError: com.google.common.primitives.UnsignedInteger.asUnsigned(I)Lcom/google/common/primitives/UnsignedInteger;
我已經成功地追查利用到火力地堡一個不同於Guava版本的版本,但是即使我強制使用Guava 19.0(通過Maven依賴關係排除機制),我仍然遇到同樣的錯誤,顯然是在FirebaseOptions類被加載時(確切位置:com.google.firebase.FirebaseOptions$Builder.setServiceAccount(FirebaseOptions.java:77)
)。
編輯: 該問題僅出現在測試運行期間,在運行時,Guava庫正確加載。
有沒有人有任何想法如何妥善提供Firebase的番石榴圖書館?
添加您的依賴項,因爲這看起來像舊版本的番石榴 – Hrabosch
@Hrabosch我試過了,都是通過明確添加Firebase POM中的Guava,並讓Maven以傳遞方式解決它(它具有,我可以看到它在清除後重新出現在我的本地Maven緩存中),但無濟於事。 –