Перейти к содержанию
BlackBerrys.ru
Sharky

Известные баги SDK JDE 6.0/5.0

Рекомендуемые сообщения

1. Preverify error. Ошибка возникает при попытке собрать мультиязычное приложение (локализация). Решается путем установки дефолтной локали для не уникодных программ на компьютере в английскую.

Решается: заменить все файлы preverify.exe на аналогичный файл из пакета OS6.0

2. Невозможно отобразить диалог, который будет что-то принимать от пользователя в момент отправки сообщения (SendListener). Не пытайтесь. Это невозможно, поскольку SendListener работает в заблокированом режиме и вывести диалог невозможно. Система повиснет. Решение нетривиально - требуется поднимать второй инстанс своего приложения и через глобальные эвенты отдавать сообщение, которое требуется обработать. Перед этим оригинальное сообщение надо отменить.

3. ApplicationMenuItem получает в качестве контекста null (OS 6.0). Решения нет. Это баг, а не ваше непонимание SDK.

4. ApplicationMenuItem создает дубликаты пунктов меню при использовании SYSTEM. Опять же - это баг. Не пытайтесь найти причину, она не в вас.

5. PhoneLogs не содержит то, что вам видно из приложения Phone. Опять же - баг синхронизации и самой OS. Замечен впервые в 2009 году, не исправлен до сих пор. Как решение - подождать пару секунд, пока отсинхронизируется лог.

6. Невозможно удалить PhoneLog item в OS5.0. Это баг, так же с 2009 года. Решения нет.

7. Невозможно создать/подменить participant в PhoneLog. Это баг с 2009 года. Решения нет.

8. Приложение Phone, метод MenuItem.run() не работает для него из AbstractPhoneListener (OS 6.0). Решения нет.

9. Audio.isHeadsetConnected() не работает для BlueTooth гарнитур

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10. OS5.0, Приложение не может иметь более двух точек входа, хотя установочный XML это позволяет. Как выход - в стартап пойнте создавайте новые дескрипторы и выставляйте им SchedulerTask.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В новой версии плагина для Эклипса косяк за номером 1 лечится копированием preverify.exe из папки с компонентами версии 6.0 в остальные папки.

Т.е. в шестой версии они его наконец пофиксили.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за решение! Я просто веду разработку под симулятором OS5, поэтому и не заметил, что под OS6 будет все в порядке.

А то задолбался жить с неродной неуникодной локалью.

Плюсанул.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11. CoverageInfo не определяет доступность BIS/MDS, если аппарат находится в режим 2G. Но работает в режиме 3G

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10. OS5.0, Приложение не может иметь более двух точек входа, хотя установочный XML это позволяет. Как выход - в стартап пойнте создавайте новые дескрипторы и выставляйте им SchedulerTask.
Немного непонятно что имеется ввиду. Например у меня три точки входа в приложение:

1. Рестарт смарта - для регистрации типа файла.

2. Ручной старт пользователем

3. Вызов из файл-эксплорера при выборе файла определенного типа.

Зачем еще может быть нужна точка входа в приложение?

    public static void main(String[] args) throws Exception

    {

	    Application app = null;

	    // STARTUP

	    if(args != null && args.length > 0 && args[0].equals("startup"))

	    {		   

		    registerApp();// Register this app as a content handler on startup

	    }

	    // USER START

	    else if (args != null && args.length > 0 && args[0].equals("man"))

	    {

		    // If application was not registered during startup then register it.

		    Application.checkRegistered();

		    app = new Application();

		    app.mainScreen.loadStartBook();

		    app.enterEventDispatcher();

	    }

	    // OTHER START

	    else

	    {

		    app = new Application();

		    app.enterEventDispatcher();

	    }

    }

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поясню - когда вы одним приложением порождаете более одного демона в памяти. Скажем - один отвечает за одно, другой за другое. В пятерке это не срабатывает.

Мне требовалось зарегистрировать разные ящики для сообщений моего приложения, увы, вот тогда я и обнаружил, что автостарт работает только для одной точки входа, а остальные - вручную.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...