我在我的类路径中使用了以下 jar 来使用 YouTube API 检索我的订阅列表:
gdata-client-1.0.jar gdata-core-1.0.jar gdata-media-1.0.jar gdata-youtube-2.0.jar guava-14.0-rc1.jar mail.jar
代码如下:
import com.google.gdata.client.*;
import com.google.gdata.client.youtube.*;
import com.google.gdata.data.*;
import com.google.gdata.data.geo.impl.*;
import com.google.gdata.data.media.*;
import com.google.gdata.data.media.mediarss.*;
import com.google.gdata.data.youtube.*;
import com.google.gdata.data.extensions.*;
import com.google.gdata.util.*;
import java.io.IOException;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
public class YouTubeExample {
public static void main (String args[]) throws MalformedURLException, IOException, ServiceException{
String developer_key = "CSCSCSCSCSCScSCXXXXX-XXXXX_-XXXX";
YouTubeService service = new YouTubeService(developer_key);
//Retrieving video subscriptions
String feedUrl =
"http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/subscriptions";
SubscriptionFeed feed = service.getFeed(new URL(feedUrl), SubscriptionFeed.class);
for(SubscriptionEntry entry : feed.getEntries()) {
System.out.println("Title: " + entry.getTitle().getPlainText());
System.out.println("Feed Link: " + entry.getFeedUrl());
}
}
}
但是在运行它时,我收到如下错误:
线程“主”java.lang.NoSuchMethodError 中的异常:com.google.common.collect.ImmutableSet.of([Ljava/lang/Object;)Lcom/google/common/collect/ImmutableSet; 在 com.google.gdata.wireformats.AltFormat$Builder.setAcceptableTypes(AltFormat.java:399) 在 com.google.gdata.wireformats.AltFormat$Builder.setAcceptableXmlTypes(AltFormat.java:387) 在 com.google.gdata.wireformats .AltFormat.(AltFormat.java:49) 在 com.google.gdata.client.Service.(Service.java:535) 在 YouTubeExample.main(YouTubeExample.java:21)
如果我在类路径中用 guava-10.0.1.jar(根据一些建议的旧版本)替换 guava-14.0-rc1.jar,我仍然会收到如下错误:
线程“主”java.lang.NoSuchMethodError 中的异常:com.google.gdata.data 处的 com.google.gdata.data.ExtensionProfile.declareAdditionalNamespace(Lcom/google/gdata/util/common/xml/XmlWriter$Namespace;)V .youtube.CommentEntry.declareExtensions(CommentEntry.java:92) 在 com.google.gdata.data.ExtensionProfile.addDeclarations(ExtensionProfile.java:71) 在 com.google.gdata.data.BaseFeed.declareExtensions(BaseFeed.java:229 ) com.google.gdata.data.ExtensionProfile.addDeclarations(ExtensionProfile.java:71) com.google.gdata.client.youtube.YouTubeService.(YouTubeService.java:140) com.google.gdata.client.youtube .YouTubeService.(YouTubeService.java:103) 在 YouTubeExample.main(YouTubeExample.java:21)
我试过包括activation.jar,servlet-api.jar,但没有运气!我也尝试过旧版本,例如 guava 0.7 jar,但没有运气。请帮忙!