<![CDATA[DigitalPlace]]> ru <![CDATA[Очередная ошибка: Potential deadlock]]> Project is broken препятствия не закончились Следующий баг, стоящий на пути оживления утилиты, связан с Windows 7, а именно на ней не работает сановский J2ME SDK 3.0, вываливая: "Прекращена работа программы runMidlet".

Эх, а мне в 3.0 нравился эмулятор сенсорного девайса.

Окей, качаем старый WTK 2.5.2, компилируем и Oh My God!

Блин, почему отлично работающий код, после того как не трогать его некоторое время перестает компилироваться? :)

Цитата:
Warning: To avoid potential deadlock, operations that may block, such as networking, should be performed in a different thread than the commandAction() handler.

В переводе на русский: Чтобы избежать возможных зависаний (deadlock), операции которые могут привести к блокировке, такие как использование сети, должны исполняться в другом потоке, а не в обработчике commandAction().

В общем логично конечно, желательно чтобы пока информация будет подсасывать из интернета, приложение не висело в ожидании. Спасибо за науку так сказать. Но SDK 3.0 как-то менее придирчив что ли в этом плане, ну не вывел ты загрузку в отдельный поток, ну и не надо. Тебе же хуже потом будет, но приложение дай запустить, елки-палки :)]]>
Java 2 Micro Edition http://digitalplace.ru?id=88 Mon, 04 Jan 2010 21:05:29 GMT
<![CDATA[Ошибка при работе с NetBeans: Not all requested modules can be enabled]]>
netbeans_project_broken_1.png (995 b)

Кнопочка Исправить (как-то так) выдала в ответ такое сообщение:

Цитата:
Not all requested modules can be enabled: [StandardModule:org.netbeans.modules.mobility.end2end.kit jarFile: F:\Program Files\NetBeans 6.7.1\mobility8\modulesorg-netbeans-modules-mobility-end2end-kit.jar]

То есть плагин Mobility End to End отказывался работать. Решение состоит в установке Java Web and EE компонентов.

Если у вас Java или All-in-One сборка NetBeans, то доставить пакет можно через инсталлятор, отметив нужную галочку.

netbeans_project_broken_2.png (34.27 Kb)


Если другой или дистрибутива уже нет, то тянем через сеть: Tools > Plugins > Available Plugins > Java Web and EE

Все :)]]>
Java 2 Micro Edition http://digitalplace.ru?id=87 Sun, 03 Jan 2010 21:22:05 GMT
<![CDATA[Java ME SDK 3.0. Баг при отображении GIF?]]> Java ME SDK 3.0 (даже присутствует эмуль сенсорного девайса).

Открыл старый проект и эмулятор вывалил java.io.IOException при создании Image из InputStream (GIF изображение Яндекс Денежки, отображающей тИЦ):

Image imgCY = null;
HttpConnection conn = null;
InputStream is = null;
 
conn = (HttpConnection)Connector.open
("http://yandex.ru/cycounter?" + domain, Connector.READ_WRITE, true);
conn.setRequestMethod(HttpConnection.GET);
is = conn.openInputStream();
 
imgCY = Image.createImage(is);

Около получа чесал репу, пробовал и так и этак. Пошел в гугл. Узнал, что не все девайсы "понимают" GIF и нарыл проверку на поддержку этого формата плюс библиотеку декодера GIF'а в приемлемый для телефона формат:

String   mediaTypes[] = null;
boolean gifSupported = false;
 
mediaTypes = Manager.getSupportedContentTypes(null);
int count = mediaTypes.length;
 
for (int i = 0; i < count; i++) {
if (mediaTypes[i].equals("image/gif")){
gifSupported = true;
break;
}
}
 
/* если поддержка есть, то грузим изображение напрямую
если нет, то используем декодер */

 
if(gifSupported){
imgCY = Image.createImage(is);
}
else {
GifDecoder d = new GifDecoder(is);
imgCY = Image.createImage(d.decodeImage());
}

Эмулятор проглотил код, но несмотря на то, что в mediaTypes[] значился "image/gif", использовал декодер, хотя на реальном устройстве картинка грузилась напрямую. Подключаю, отдельно загруженный, WTK, все нормально, то есть декодер не используется. Баг или фича нового SDK?]]>
Java 2 Micro Edition http://digitalplace.ru?id=58 Sun, 27 Sep 2009 08:43:19 GMT