Ошибка создания экземпляра EventBus в Java

Я пытаюсь использовать EventBus из библиотек Google Guava.

Из документации Guava должно быть легко создать экземпляр объекта EventBus.

Мой код:

package test;

import com.google.common.eventbus.EventBus;

public class Test {
    public static void main(String[] args) {
        EventBus bus = new EventBus("Sample");
    }
}

Я получаю эту ошибку:

Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Objects.firstNonNull(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
at com.google.common.cache.CacheBuilder.getKeyStrength(CacheBuilder.java:355)
at com.google.common.cache.CustomConcurrentHashMap.<init>(CustomConcurrentHashMap.java:206)
at com.google.common.cache.ComputingCache.<init>(ComputingCache.java:39)
at com.google.common.cache.CacheBuilder.build(CacheBuilder.java:569)
at com.google.common.eventbus.EventBus.<init>(EventBus.java:156)
at test.Test.main(Test.java:7)
Java Result: 1

Я пробовал с Guava 10.0, 11.0 и 12.0 и всегда одна и та же ошибка. Я использую OSX Lion и использую Netbeans 7.1: я пробовал как Java 6 (32 и 64-битная версия), так и Java 7: без улучшений. В Google я не могу ничего найти. Это проблема с гуавой? Или, как обычно, я что-то упускаю?

С наилучшими пожеланиями,

Alessandro

2 ответа

Чтобы расширить то, что сказал @biziclop, у вас, скорее всего, есть и последняя версия Guava, и либо google-collect, либо версия Guava до 3.0 на вашем classpath. Objects.firstNonNull был добавлен в 3.0, предполагая, что загружается старая версия этого класса.

У меня такая же проблема. Я использовал google-collection 1.0, где guava v11. Эта проблема исчезла после того, как я обновился до

<!-- https://mvnrepository.com/artifact/com.google.guava/guava --> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>19.0</version> </dependency> от

<dependency>
  <groupId>com.google.collections</groupId>
  <artifactId>google-collections</artifactId>
  <version>1.0</version>
</dependency>
Другие вопросы по тегам