![]() |
Модераторы: javastic, AntonSaburov |
![]() ![]() ![]() |
|
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: 2 Всего: 2 |
Всем добрый день! Создаю простой мидлет в WTK 2.5.1 следующего кода...
В WTK 2.5.1 ставлю в настройках проекта конфигурацию CLDC 1.0 и профиль MIDP 1.0. Запускаю приложение... На эмуляторе всё работает. Но после запуска мидлета на телефоне, выдаётся следующая ошибка: Unrecoverable error in MIDlet.startApp() java.lang.NoClassDefFoundError: com/sun/midp/io/j2me/storage/File Не пойму почему он не может найти этот класс, поддерживаемый профилем MIDP 1.0. Аппарат у меня Siemens CX75(CLDS 1.1 , MIDP 2.0) Помогите разобраца... |
|||
|
||||
hamsterKSU |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 401 Регистрация: 20.10.2006 Где: Украина, Херсон Репутация: 7 Всего: 11 |
вот этого import com.sun.midp.io.j2me.storage.File; на телефонах точно нет
Добавлено @ 13:53 что бы получить доступ к файловой системе телефон должен держать JSR 75 Это сообщение отредактировал(а) hamsterKSU - 28.2.2008, 13:53 |
|||
|
||||
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: 2 Всего: 2 |
а что такое JSR и где про него подробнее можно прочитать?! Можете посоветовать какуюнить хорошую статью?
И ещё... изменил код:
и поставил в настройках WTK 2.5.1 поддержку JSR 75, но теперь не запускается даже на WTK... вот что говорит Building "ProjectOzfDecoder" C:\WTK2.5.1\apps\Project\src\MainMidlet.java:38: cannot find symbol symbol : class FileConnection location: class MainMidlet FileConnection f=(FileConnection)Connector.open("file:///SDCard/text.txt"); ^ C:\WTK2.5.1\apps\Project\src\MainMidlet.java:38: cannot find symbol symbol : class FileConnection location: class MainMidlet FileConnection f=(FileConnection)Connector.open("file:///SDCard/text.txt"); ^ C:\WTK2.5.1\apps\Project\src\MainMidlet.java:38: cannot find symbol symbol : variable Connector location: class MainMidlet FileConnection f=(FileConnection)Connector.open("file:///SDCard/text.txt"); ^ 3 errors com.sun.kvem.ktools.ExecutionException Build failed В чём дело? |
|||
|
||||
eugine_s |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
А что значит ты поставил в настройках поддержку JSR-75? Settings - Api Selection - (галочка) PDA Profile for J2ME (JSR 75) так ? Потому как в ошибке у тебя говорится, что этого класса как раз и нет у тебя. Кстати в втк есть пример работы с jsr75 - PDAPDemo |
|||
|
||||
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: 2 Всего: 2 |
да так.. Как нету класса? Он находица в библиотеке jsr75.jar, а она в свою очередь располагаеца в папке \WTK2.5.1\lib. Или его надо както по особому подключить? |
|||
|
||||
eugine_s |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
Brodyaga, ошибся, не класса нет, а библиотеки нет... т.е. у тебя библиотека jsr75 почему-то не подключена к проекту...
Попробуй ручками скомпилить проект с подключением этой библиотеки, ну или загрузи проект PDAPDemo посмотри он работает или нет.. |
|||
|
||||
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: 2 Всего: 2 |
Всё! Сделал! На WTK всё действително работает... Но на телефоне он не может найти этот класс... Таже ошибка которую я приводил в первом сообщении. Что получается, если телефон не поддерживает jsr75, то он не может работать с файлами?!? Получается Siemens CX75 не может работать с файлами? Телефон вроде не старый... Как быть?
|
|||
|
||||
eugine_s |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
На Сименсе есть свое апи для работы с ФС.
com.siemens.mp.io.File А если JSR75-го нет, то java с ФС не работает. |
|||
|
||||
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: 2 Всего: 2 |
А если мне нужна программа работающая на большинстве телефонов с обращением к какомунибудь файлу с флэшки и я буду использовать jsr75, то на всех сименсах она работать не будет, так как у них своё API для этого? И много ли телефонов с поддержкой jsr75?
|
|||
|
||||
eugine_s |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
На тех только у кого есть JSR75 Уже много. Да, было свое АПИ, но сейчас у них ... а сложно сказать, так как Сименс Мобайл уже как таковой нет. Сименс продал уже давно свой отдел мобильный benq, а они в свою очередь год (может два) назад заявили что их контора убыточна и мобильный или будет банкротом или кому-то продадут... про дальнейшую судьбы не знаю. Так что я на твоем месте особо с сименсом не замарачивался. А вобще работа с ФС - это часто бывает проблемной областью, поэтому я бы как минимум тестировал на всех телефонах из списка совместимости(возможно для каждого телефона была бы своя портация). |
|||
|
||||
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: 2 Всего: 2 |
Да я и не заморачивась с сименсом, просто у меня сименс
![]() В какой библиотеке лежит этот сименсовый com.siemens.mp.io.File? Это сообщение отредактировал(а) Brodyaga - 29.2.2008, 08:11 |
|||
|
||||
Shurik16 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 20.4.2007 Где: г.Хабаровкс Репутация: 1 Всего: 1 |
Портирование Ссылка
В NetBeans я примерно так портирую Ссылка. В настроиках проекта в атрибутах прописываеш Mode Siemens и Когда компилится проект Содиржимое Которое не поподаетпод условие //#if Mode == "Siemens" не проходит компиляцию
|
|||
|
||||
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: 2 Всего: 2 |
Дайте плиз ссылку на библиотеку с сименсовым классом File... Или может у кого есть?
|
|||
|
||||
eugine_s |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
||||
|
||||
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: 2 Всего: 2 |
Спасибо!
|
|||
|
||||
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: 2 Всего: 2 |
При подключении данной вами сименсовской библиотеки WTK выдаёт ошибку следующего содержания:
Error: native methods should not appear Error preverifying class com.siemens.mp.game.ExtendedImage А Eclipse при подключении библиотеки компилица, но при создании объекта класса файл выдаёт: java.lang.NoClassDefFoundError: com/siemens/mp/io/File at RastrMapManager.<init>(+11) at MainMidlet.startApp(+22) at javax.microedition.midlet.MIDletProxy.startApp(+7) at com.sun.midp.midlet.Scheduler.schedule(+270) at com.sun.midp.main.Main.runLocalClass(+28) at com.sun.midp.main.Main.main(+116) Execution completed. В чём дело? У вас есть другая библиотека для сименса? |
|||
|
||||
eugine_s |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
Читаем, что такое native метод и потом даем ответ почему втк НЕ должен работать с этой библиотекой. Дело в твоем не понимании зачем тебе нужна библиотека сименса... На самом деле библиотека сименса может не содержать реализацию метод - могу быть только объявление методов и поля (без реализации). Иногда такое называется заглушкой - чтобы можно было скомпилировать проект, а потом сбросить на телефон и там уже смотреть на работоспособность приложения... Разбирайся, я тебе дал все что тебе нужно для того чтобы сделать твое задание (а именно работа с ФС на Сименсе). |
|||
|
||||
Stasilok |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 20.3.2008 Репутация: нет Всего: нет |
Короче убиваешь к чертям эту библиотеку, где: com/siemens/mp/io/File !!!
А теперь обьясняю, во всей 65-75-85(SGold NEWSGOld) серии сименсов присутствует JSR75, но лежит он никак обычно по адресу javax.microedition.io.file , а по даресу com.siemens.mp.io.file содержимое и принцип работы идентичен!! Т.е. тупо копируете библиоткеку JSR75.jar например в JSR75sie.jar и внутри заменяете пути, переименовывая папки и получаете сименсовскую апи для работы с ф.с. и всё, теперь при написании мидлета, делаете импорт com.siemens.mp.io.file.FileConnection и com.siemens.mp.io.file.FileSystemRegistry и радуетесь.. т.е. можете сделать 2 отдельные версии мидлета, установив условия для компиляции, хотя всё можно и в одном мидлете собрать.. |
|||
|
||||
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: 2 Всего: 2 |
Тоесть классы остаются теже? Просто меняем название библиотеки и пакеты внутри неё.. помещаем её в системные.. подключаем, работаем... скидываем на телефон, и там он найдёт по тому же пути? Но зачем два мидлета я не понял?
Это сообщение отредактировал(а) Brodyaga - 20.3.2008, 07:35 |
|||
|
||||
eugine_s |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
Два: один использует javax.microedition.io.file,*; второй com.siemens.mp.io.file.*; можно и в одном, но не факт что везде запуститься (везде имеется ввиду где есть один из пакетов javax.... или com.siemens...). Поэтому лучше две версии делать. |
|||
|
||||
![]() ![]() ![]() |
FAQ раздела лежит здесь! |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java ME (J2ME) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |