Ошибка NoSuchMethod при получении службы gdata - PullRequest
3 голосов
/ 10 февраля 2012

Я получаю следующую ошибку:

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, а такжеимпортировано гораздо больше, чем нужно.С тех пор я удалил библиотеки, которые я счел ненужными (спасибо thinkteep ).Итак, библиотеки, которые я сейчас включаю, это следующие библиотеки:

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, и включение этой библиотеки, казалось, решало ее.Заранее спасибо за помощь!О, и я также точно следовал каждому шагу (или, по крайней мере, мне так кажется) в руководстве по началу работы .Моя тестовая сборка была успешно завершена ... Еще раз спасибо!

Ответы [ 7 ]

12 голосов
/ 10 февраля 2012

Добавление больше, чем требуется, может также вызвать проблемы.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.

Убедитесь, что ни один из этих случаев не происходит.

4 голосов
/ 26 марта 2012

Проблема с последней версией gdata, все еще ссылающейся на старые методы гуавы

Выезд http://code.google.com/p/gdata-java-client/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Type%20Status%20Priority%20Milestone%20Owner%20Summary&groupby=&sort=&id=344

Решение

Я перешел на guava-r07.jar, расположенный по адресу http://code.google.com/p/guava-libraries/downloads/detail?name=guava-r07.zip&can=4&q=

Это заставило меня пройти ContactsService service = новый ContactsService ("");

Используется банка:

  • Плагин Eclipse по умолчанию jar's
  • gdata-base-1.0.jar
  • gdata-client-1.0.jar
  • GData-контакты-3.0.jar
  • gdata-core-1.0.jar
  • gdata-media-1.0.jar
  • гуавы-r07.jar

  • Apache (сервлет-api.jar)

  • JavaMail (mail.jar)
  • JavaBeans Activation Framework (активации.jar)
0 голосов
/ 30 сентября 2015

Обратите внимание на этот jar gdata-core-1.0.jar У меня та же проблема, и я понял, что у меня проблема с этим jar gdata-core-1.0.jar, и я нашел на сайте тот же самый jar gdata-core- 1.0.jar, но содержание другое. После замены нового gdata-core-1.0.jar проблема решена.

Так что хитро, что баночка с тем же именем, но ее содержимое не совпадает. Вы думали, что у вас есть банка, на самом деле это не правильный

0 голосов
/ 21 сентября 2015

Я добавил googlecollection-exp.jar в путь сборки, тогда предыдущее исключение пропало.

0 голосов
/ 19 декабря 2014

Если вы используете инструмент сборки, такой как Maven, вы можете просто сделать что-то похожее на следующий пример из части раздела зависимостей в моем pom.xml:

<!-- The mail dependency is required BEFORE the javaee-api dependency.
         The gdata dependency (YouTube API) requires the mail dependency. -->
    <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>mail</artifactId>
        <version>1.4</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-api</artifactId>
        <version>6.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.google.gdata</groupId>
        <artifactId>core</artifactId>
        <version>1.47.1</version>
    </dependency>
0 голосов
/ 12 октября 2013

Обязательные библиотеки Jar следующие.

gdata-client-1.0.jar
gdata-core-1.0.jar
gdata-media-1.0.jar
gdata-youtube-2.0.jar
guava-11.0.2.jar
java-mail-1.4.4.jar

Я использую вышеупомянутую библиотеку.Пожалуйста, используйте это;потому что конечная цель - получить объект YouTubeService.Ниже приведен фрагмент кода.

package com.baba.test;
/*
* Author : Somanath Nanda
*/


import java.net.MalformedURLException;
import java.net.URL;
import com.google.gdata.client.youtube.YouTubeQuery;
import com.google.gdata.client.youtube.YouTubeService;
public class Test {
private static final String CLIENT_ID = "XXXXXXXX.XXXXX.XXX.XXX";
private static final String DEVELOPER_KEY = "*********************************88";
public static void main(String[] args) throws MalformedURLException {
YouTubeService service = new YouTubeService(CLIENT_ID,DEVELOPER_KEY);
System.out.println("Service : "+service);
}
0 голосов
/ 02 марта 2012

Не знаю, актуально ли оно по-прежнему, но у меня было то же исключение

существует проблема с guava 11.02.jar (в настоящее время последняя версия)

при использовании guava-10.0.1 ( здесь ) все прошло хорошо.

...