![]() |
Модераторы: javastic, AntonSaburov |
![]() ![]() ![]() |
|
vicvic |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 13.12.2008 Репутация: нет Всего: нет |
Значит есть такой простенький мидлетик
при дебаге с выводом всех эксепшенов на дефалтколорфоне на строчке
происходит целый ряд мистических вещей, а именно 1. Exception 'java.lang.ClassNotFoundException' occurred in thread 'KVM_main' в классе com.sun.cldc.i18n.Helper, функция private static com.sun.cldc.i18n.StreamWriter getStreamWriterPrim(java.lang.String string) throws java.io.UnsupportedEncodingException { /* compiled code */ } 2. Exception 'java.lang.ClassNotFoundException' occurred in thread 'KVM_main' в классе com.sun.cldc.i18n.Helper, функция private static com.sun.cldc.i18n.StreamReader getStreamReaderPrim(java.lang.String string) throws java.io.UnsupportedEncodingException { /* compiled code */ } 3. Exception 'java.io.IOException' occurred in thread 'KVM_main' в классе com.sun.mmedia.WavPlayer, функция public void run() { /* compiled code */ } При этом звук нормально проигрывается, и мидлет работает дальше без каких-либо видимых проблем. Причем в этом примере если выйти из мидлета (но не выходя из эмулятора) и запустить его заново, то первых двух эксепшенов уже не будет. Стеки и значения переменных на скриншотах в аттаче (1 и 2 первый ексепшн, 3 и 4 - второй) НО! Кроме спортивного интереса что это должно значить, есть вполне практическая проблема - в реальном проекте таже фигня происходит на строчке player.start(); и при этом мидлет умирает! В смысле выполнение вызвавшей функции не продолжается, хотя на нажатие клавиш реагирует. При чем на некоторых реальных девайсах проект работает нормально и без проблем, на других - умирает с теми же симптомами, как и в эмуляторе. Покопался в исходниках на java2s.com и если правильно понимаю, то проблема не в плеере, а в обработке строк и кодировках. Если судить по исходникам, то он должен искать com.sun.cldc.i18n.j2me.Cp1251_Reader.java и Cp1251_Writer.java, коих есессно в библиотеке нет. В качестве эксперимента скопировал и переименовал ISO8859_1_Writer/Reader, но картина не поменялась. Не знаю правда, то ли он другой класс исчет, то ли исходники на j2s устарели, то ли классы в com.sun.cldc нельзя добавить. И ещё в тех же исходниках сказано, что
getProperty("microedition.encoding") дает нул, но при дебаге в defaultEncoding сидит Cp1251. Откуда оно там взялось тоже не понятно... В общем подскажите граждане как это мона объяснить и главное как с этим пробовать бороться, уж очень хоца расширить список поддерживаемых девайсов. Сори что так длинно, сильно трабла загадочная ![]() Присоединённый файл ( Кол-во скачиваний: 2 ) ![]() |
||||||
|
|||||||
![]() ![]() ![]() |
FAQ раздела лежит здесь! |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java ME (J2ME) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |