java - 获取 gdata 服务时出现 NoSuchMethod 错误

标签 java service youtube gdata gdata-api

我收到以下错误:

Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.collect.ImmutableSet.of([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)
at testproject.TestProject.run(TestProject.java:22)
at testproject.TestProject.main(TestProject.java:31)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)

这来自以下代码:

package testproject;

import com.google.gdata.client.youtube.YouTubeService;
import com.google.gdata.util.*;
import java.util.logging.*;

public class TestProject {

  public static void main(String[] args) {
    try {
      YouTubeService service = new YouTubeService("Test", "developerKey");
      service.setUserCredentials("root@gmail.com", "pa$$word");
    } catch (AuthenticationException ex) {
      Logger.getLogger(TestProject.class.getName()).log(Level.SEVERE, null, ex);
    }
  }
}

起初,我将每个库都包含在 http://code.google.com/p/gdata-java-client/downloads/list 中而且还进口了比我需要的多得多的东西。 我已经删除了我认为不必要的库(感谢 thinksteep )。所以我目前包含的库是以下库:

mail.jar
activation.jar
ant.jar
gdata-core-1.0.jar
gdata-media-1.0.jar
guava-11.0.1.jar
gdata-youtube-2.0.jar
gdata-youtube-met-2.0.jar

(那里可能有一些不是必需的库......但我已经精疲力尽了......) 我只是想测试获得 YouTube 服务,这样我就可以在这个项目上取得进展,但没有骰子。哦,我还包含了这个库:http://code.google.com/p/guava-libraries因为在我收到 NoClassDefFound 错误之前,包含该库似乎可以解决它。预先感谢您的帮助! 哦,我也完全遵循了 gdata getting started guide 中的每一步(或者至少我是这么认为的) .最后,我的测试构建成功了……再次感谢!

最佳答案

添加超过要求也可能导致问题。 java.lang.NoSuchMethodError 错误通常发生在运行时无法找到具有准确签名的所需方法的情况下。可能的原因是:

1) There might be mulitple jars with same code, which may cause wrong class get loaded.

2) Incompatable version of jar, the jar you have in classpath might be older version/newer version.

确保这些情况都不会发生。

关于java - 获取 gdata 服务时出现 NoSuchMethod 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9222665/

相关文章:

java - 由类名创建的反射中的 ClassNotFound 异常

Java - 复制到新的 txt 文件

启动应用程序时C# Windows Service COM异常80080005

php - 将多个YouTube链接转换为嵌入式嵌入式视频

angularjs - 为什么硬编码YouTube视频ID可以,但是使用变量却不能呢?

java - 用于检测持续时间的正则表达式

java - 优化获取参数值

php - 如何制作一个通过 Web 服务器接受命令的 Linux 服务?

vb.net - 将 .NET 程序作为服务运行

javascript - 按下播放按钮后进行回调 - Youtube 嵌入视频