Модераторы: javastic, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Где смотреть log ? Во время работы программы, она вылетает 
:(
    Опции темы
Гость_Name
Дата 6.7.2005, 15:39 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











На емуляторе все работает, на трубе вылетает при переходе на следуюшее окно.
Где можно посмотреть printStackTrace ?
Или куда вообше пишется System.err ?

Пардон если в FAQ и в форуме не нашел.


  Вверх
Dancer
Дата 7.7.2005, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 29.4.2005
Где: Nizhniy Novgorod

Репутация: 33
Всего: 37



подключи свой девайс к гипертерминалу (HiperTerminal в Win). Там увидешь всю инфу, если конечно ты можешь свою трубу как модем использовать. Или нужно будет написать своё приложение, которое сможешь работать через COM. В своём мидлете сначала делаешь соединение с телефоном через COM API, а далее всё что тебе телефон будет кидать, то ты сможешь совим приложением выводить куда хочешь и как хочешь.

Кстати, труба какая?



--------------------
У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! smile
PM MAIL   Вверх
Гость_Name
Дата 7.7.2005, 20:59 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Siemens SX1,
спасиба я попробую.
  Вверх
Corwin
Дата 10.8.2005, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 3.8.2005

Репутация: нет
Всего: нет



Та же проблема. Телефон Nokia 7610. Подцепился гипертерминалом к девайсу "Nokia 7610 USB #2". Отзывается, на ATI3 выдает: Nokia 7610. Однако System.out и System.err уходит в пустоту. Программа стартует и тут же вываливается, налицо какой-нить exception, вот только как понять, какой? На эмуляторах все функционирует... Получается, что нет возможности выяснить, что там внутрях происходит?
PM MAIL ICQ   Вверх
Dancer
Дата 10.8.2005, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 29.4.2005
Где: Nizhniy Novgorod

Репутация: 33
Всего: 37



В HyperTerminal нужно выбирать не USB чего-то там. А конкретный COM порт, на которм у тебя будет отображаться мобилка в Диспетчере устройств.

Код для активации подсоединения кабеля к мобилке, для логирования:
Код

                    new Thread() {
                        public void run() {
                            Form form = new Form("");
                            form.append("Insert cable");
                            disp.setCurrent(form);
                            try {
                                Logger.setCommLogger(new PrintStream(Connector.openOutputStream("comm:com0;baudrate=19200")));
                                Logger.printlnCOMM("\n\rCable attached!!!");
                            } catch (Exception e) {
                                System.err.println(e.toString());
                            }
//здесь делаешь вывод своей главной формы, или ещё чего-то что нужно будет показать после подсоединения кабеля.

                        }
                    }.start();


Класс Logger:
Код

import java.io.PrintStream;

public class Logger {
    private static PrintStream commLog = null;
    private static PrintStream systemLog = null;

    private Logger (PrintStream commOs, PrintStream systemOs) {
        commLog= commOs;
        systemLog = systemOs;
    }

    public static void println(String str) {
        printlnCOMM(str);
        printlnSystem(str);
    }

    public static void setLogger(PrintStream commOs, PrintStream systemOs) {
        if(commLog == null) commLog = commOs;
        if(systemLog == null) systemLog = systemOs;
    }

    public static PrintStream getCommLogger() {
        return commLog;
    }

    public static PrintStream getSystemLogger() {
        return systemLog;
    }

    public static void setCommLogger(PrintStream os) {
        commLog = os;
    }

    public static void setSystemLogger(PrintStream os) {
        systemLog = os;
    }

    public static void printlnCOMM(String str) {
        if(commLog != null) {
            commLog.println(str + "\r");
        } else System.out.println("COMM port can't logged. Log put in System.out: "+str + "\r");
    }

    public static void printlnSystem(String str) {
        if(systemLog != null) {
            systemLog.println(str + "\r");
        } else System.out.println("can't logged to selected SYSTEM logger. Log put in System.out: "+str + "\r");
    }
}



--------------------
У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! smile
PM MAIL   Вверх
javastic
Дата 11.8.2005, 09:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

Репутация: 19
Всего: 27



Цитата(Corwin @ 10.8.2005, 14:20)
Та же проблема. Телефон Nokia 7610. Подцепился гипертерминалом к девайсу "Nokia 7610 USB #2". Отзывается, на ATI3 выдает: Nokia 7610. Однако System.out и System.err уходит в пустоту. Программа стартует и тут же вываливается, налицо какой-нить exception, вот только как понять, какой? На эмуляторах все функционирует... Получается, что нет возможности выяснить, что там внутрях происходит?


А в Alert в момент исключения почему ошибку не вывести?
Мог бы ещё код сюда запостить, не весь, а там где у тебя сомнения в работе.
Трудно так в кошки-мышки играть.

Это сообщение отредактировал(а) javastic - 11.8.2005, 09:30


--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
Corwin
Дата 11.8.2005, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 3.8.2005

Репутация: нет
Всего: нет



Спасибо за советы, но ничего не получилось... Во всех портах по-прежнему тишина. Похоже, USB с точки зрения телефона вовсе не comm0, а разбираться в апи лениво. Перехват System.out/err не удался. И uncaught exceptions так и останутся за кадром. Все сообщения заменю на алерты, глядишь, что-нить накопаю...
PM MAIL ICQ   Вверх
Dancer
Дата 11.8.2005, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 29.4.2005
Где: Nizhniy Novgorod

Репутация: 33
Всего: 37



попробуй comm1 и у меня такое предчуствие, что на Nokia comm0 зарезирвирован под какую то хрень, может быть даже под ИК.
Кстати, посмотри перед тем как начнёшь что-то делать, что какие порты в телефоне тебе доступны, ниже приведён небольшой код, думаю разобраться не сложно:

Код

  Form form = new Form("Comm Ports");
  String  names = System.getProperty("microedition.commports");
  int token=0;

  while((token = names.indexOf(","))>0) {
      String portName = names.substring(0,token);
      names = names.substring(token + 1, names.length());
      form.append("PortName = "+portName);
  }
   form.append("PortName = "+ names);

   Display.getDisplay(this).setCurrent(form);




--------------------
У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! smile
PM MAIL   Вверх
javastic
Дата 11.8.2005, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

Репутация: 19
Всего: 27



А так же, если у тебя телефон не древний, то в нём должен быть модем, который должен был установиться в Винде. Вот там ты и можешь посмотреть как твой порт называется и какой он.
smile


--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
Corwin
Дата 12.8.2005, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 3.8.2005

Репутация: нет
Всего: нет



2 Dancer: на емуляторе код отрабатывается на ура, а на телефоне System.getProperty("microedition.commports") отдает null... Типа, нету портов ваще.

2 javastic: так тоже делал - бесполезняк, тишина... Да и откуда там чему взяться, если в порт никто ниче не пишет.

А все же, есть какой-нить способ перехватить printStacktrace? getMessage() дает маловато инфы...
PM MAIL ICQ   Вверх
javastic
Дата 12.8.2005, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

Репутация: 19
Всего: 27



Попробуй ещё потестировать на различных эмуляторах, может где ещё вывалится с такой ошибкой?

Во! Мысль пришла. Я не знаю какой эмулятор ты используешь, но всё же. Я пользую СониЕриксон, там с обычным эмулятором установился ещё один, который называется SonyEricsson (Device on debug).
Если при разработке выбрать его, то программа запускается прямо на телефоне и прямо на нём можно делать отладку!
Так ты 100% поймаешь своего жучка.

И ещё проверь, нормально ли ты установил дрова в ОС к модему своего телефона. У меня тоже был глюк, иногда через термиал просто прекращался опрашиваться модем, приходилось перезапускать телефон. Драйвера переставил и всё стало Ок.
smile




--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
Corwin
Дата 12.8.2005, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 3.8.2005

Репутация: нет
Всего: нет



На других эмуляторах тоже все работает без проблем. Да в общем это и не важно, багу я все равно найду, не мытьем так катаньем :-) А вот на будущее, знать бы как стандартный вывод перехватить...
PM MAIL ICQ   Вверх
Dancer
Дата 12.8.2005, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 29.4.2005
Где: Nizhniy Novgorod

Репутация: 33
Всего: 37



Цитата(javastic @ 11.8.2005, 15:45)
А так же, если у тебя телефон не древний, то в нём должен быть модем, который должен был установиться в Винде. Вот там ты и можешь посмотреть как твой порт называется и какой он.
smile

как раз таки это будет тот порт, на которм компутер определяет телефон, но а я говорит про порт, который определяется в самом телефоне, то есть когда мы шнурок подсовываем, телефон долже же с портом работать и ему по-хрену мороз на какой-там порт его комп определяет. У телефона свои COMM порты, они и начинают с 0 нумероваться.
Но если выводится null, то скорее всего из Java у этой мобилки нету поддержки передачи данных через шнурок.


--------------------
У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! smile
PM MAIL   Вверх
javastic
Дата 12.8.2005, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

Репутация: 19
Всего: 27



Ну так правильно, за коннект и обмен данными должна отвечать какая-то программа (менеджер, драйвер), она когда устройство находит то прописывает у себя на какой порт принимать/отдавать с устройства и на какой порт компа принимать/отдавать. Терминальная программа уже ведет обмен с портом компа. Так что определенный модем трубы опознается в том случае если порт был найден Виндой (например). И в систему эта информация записывается. К сожалению не могу показать, т.к. у меня сейчас старый монохромный Филипок, который вообще сложно куда либо подключить.



--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.0906 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.