NoSuchMethodError с использованием JACOB - PullRequest
1 голос
/ 15 мая 2011

Я использую JACOB в своей Java-программе для работы, но каждый раз при попытке получить ITTrack из ITTrackCollection я сталкиваюсь с ошибкой.

Это строка, которая выдает ошибку:

a.add(t.getItem(1));

Это ошибка:

Exception in thread "AWT-EventQueue-0" java.lang.NoSuchMethodError: com.jacob.com.Dispatch.call(Lcom/jacob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)Lcom/jacob/com/Variant;
    at com.dt.iTunesController.ITTrackCollection.getItem(ITTrackCollection.java:42)
    at iq.Main.addSong(Main.java:27)
    at iq.Main$listener.onHotKey(Main.java:70)
    at com.melloware.jintellitype.JIntellitype$1.run(JIntellitype.java:396)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$000(Unknown Source)
    at java.awt.EventQueue$1.run(Unknown Source)
    at java.awt.EventQueue$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
com.jacob.com.Dispatch.call(Lcom/jacob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)Lcom/jacob/com/Variant;

a - массив ITTrack, а t - коллекция ITTrack. В нем определенно более двух ITTracks.

Спасибо

1 Ответ

1 голос
/ 16 мая 2011

Ваш код вызывает метод, который не может быть найден в классе Dispatch со следующей подписью:

Variant call(Dispatch dispatchTarget, String name, Object attributes)

Глядя на документацию по Jacob, следующий метод из этого класса наиболее точно соответствует этомуone:

Variant call(Dispatch dispatchTarget, String name, Object... attributes)

Обратите внимание, что последний параметр отличается (vararg - массив Object).

Вы скомпилировали свой код для другой версии библиотеки?

...