我正在开发一个 AppEngine应用程序,我需要使用 Google Calendar API 。由于某些原因,我们没有使用此API的最新版本(v3),而且我们正在使用 gdata-calendar-v2 ,这仍然有效,直到明年11月。
好的,我有两种使用Calendar Service的方法。一方面,我在我的日历上添加了一个新事件,我做了类似的事情:
CalendarService myService = new CalendarService("my_calendar"); // error on this line
myService.setUserCredentials(EMAIL, PASSWORD);
据我所知,工作正常,我在日历上添加了新活动,没有任何问题。
另一方面,我有另一种方法,我做了不同的事情,但我使用相同的代码段连接到Google日历。在这种情况下,我收到此错误:
Caused by: java.lang.NoSuchMethodError: com.google.common.collect.ImmutableSet.copyOf([Ljava/lang/Object;)Lcom/google/common/collect/ImmutableSet;
at com.google.gdata.wireformats.AltFormat$Builder.setAcceptableTypes(AltFormat.java:399)
at com.google.gdata.wireformats.AltFormat$Builder.setAcceptableXmlTypes(AltFormat.java:387)
at com.google.gdata.wireformats.AltFormat.<clinit>(AltFormat.java:49)
at com.google.gdata.client.Service.<clinit>(Service.java:558)
我正在使用-collections-的库,你可能感兴趣的是:
我知道有一个非常相似的线程有同样的问题right here但是有一个区别:它在我的项目的一个方法中正常工作而在另一个方法中工作不正常。
你能帮助我吗?提前谢谢你, 迭。
我一直在谷歌搜索,我发现了这个thread 我已将我的番石榴改为guava-10.0.1.jar,我不会再出现此错误。
java的gdata客户端库的最新版本(撰写本文时版本1.46.0,在此处找到:https://code.google.com/p/gdata-java-client/downloads/list)仍在其依赖项中嵌入google-collections-1.0-rc1.jar,并在此处指出它无法被最新的番石榴版本取代。