SWT GTK 64 bit и UBUNTU 11.04 NPE - PullRequest
       18

SWT GTK 64 bit и UBUNTU 11.04 NPE

2 голосов
/ 29 сентября 2011

В настоящее время я работаю в отдельном приложении SWT. Обычно мы работаем с окнами, но я бы хотел работать в Ubuntu. Я настроил следующую среду.

Ubuntu 11.04 64bit Java 6 обновление 27 64 бит Eclipse Java EE 3.5 Galileo 64 бит Я использую SWT GTK 64 бит

У меня есть несколько классов, расширяющих различные виджеты SWT.

Например

    public class MyCombo extends Combo implements CellEditor<Long> {
    private Set<ListenerRef> listeners = new HashSet<ListenerRef>();

@Override
    public void addListener(int eventType, Listener listener) {
        listeners.add(new MyCombo.ListenerRef(eventType, listener));
        super.addListener(eventType, listener);
    }

 @Override
    protected void checkSubclass() {
        // Do nothing
    }
.
.
.

Этот код прекрасно работает в 64-битной Windows 7, с битами SWT32 и java32, из 32-битного затмения.

В Ubuntu 11.04 я получаю NPE (NullPointerException) при попытке добавить прослушиватель, кажется, что набор слушателей имеет значение null, но это не должно вызывать инициализацию этого набора, как в приведенном выше коде, и, как я говорю работает в Windows 7

Сначала у меня возникли проблемы с запуском 32-битного приложения SWT в Ubuntu64, потому что, похоже, была ошибка при запуске 32 приложений в 64-Ubuntu, поэтому я попытался запустить его с 64-й версией, и теперь я получаю эту ошибку , Если я не буду проверять этот NPE, я получу

java.lang.NullPointerException
    at org.eclipse.swt.accessibility.Accessible.isValidThread(Unknown Source)
    at org.eclipse.swt.accessibility.Accessible.checkWidget(Unknown Source)
    at org.eclipse.swt.accessibility.Accessible.addRelation(Unknown Source)

Есть идеи, в чем может быть причина? Вы знаете об этой проблеме в предыдущих дистрибутивах Ubuntu? Я не вижу этой проблемы в Windows 7, по крайней мере, работает 32-битный SWT

Пожалуйста, дайте мне знать, если вам нужно больше деталей

Спасибо и всего наилучшего

Кстати, я забыл, SWT - 3.7 в Linux и 3.6.2 в Windows

...