Blackberry 5.0 - Добавить ссылку на проект библиотеки Java

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

У меня есть ProjectA, который является проектом приложения BlackBerry. У меня есть ProjectB, который является проектом библиотеки Java. Я хочу сослаться на ProjectB от ProjectA. Я могу добавить ссылку, но когда я запускаю ProjectA, она не работает. У меня есть исходный код для обоих проектов, и оба скомпилированы с использованием компилятора Java 1.4

Я пробовал несколько вещей, но почему-то все не получается:

1. pre-verify.exe на ProjectB. Сбой "Ошибка создания файла JAR с ошибкой -1". Я вижу, что файлы cod и jar созданы, но когда добавляем файл jar в ProjectA и запускаем его, не работает Не уверен, что мне нужно добавить файл.cod.

2. Создайте новый проект библиотеки BlackBerry и создайте ссылку на него в ProjectA. Я создаю новый проект ProjectC, а затем добавляю в него банку ProjectB. Затем я добавляю ссылку на ProjectC в ProjectA. Но я не могу импортировать классы из ProjectB

Просьба предложить выход. Я использую Eclipse Plug-in и полагаюсь на возможности сборки Eclipse

2 ответа

Решение

Разобрался ответь сам. Публикация здесь на случай, если кто-то наткнется на это Вот шаги:

  1. Создайте свою библиотеку и экспортируйте как JAR (или загрузите сторонний JAR)
  2. Запустите preverify.exe на JAR

    preverify.exe -verbose -classpath "C: / Файлы программы /Research In Motion/BlackBerry JDE 5.0.0/lib/net_rim_api.jar" jarname.jar

  3. Если вам повезет, вы не столкнетесь ни с какими проблемами, и все будет сделано. Но мне не повезло. Я получил ошибку ниже

Ошибка: нет такого файла или каталога. Ошибка создания файла JAR с ошибкой -1

Есть две возможные причины этого:

  • jar.exe не добавлен в ваш путь. Если это так, добавьте его (находится в каталоге установки JAVA) в PATH
  • Параметр cvfm или -cfm на jar.exe не выполняется. Я не знаю причину, но способ исправить это, используя опцию -cf, указать файлы.class, но не использовать файл манифеста. вот
    пример:

    "C: \ Program Files \ Java \ jdk1.6.0_26 \ bin \ jar.exe" -cf "output \ json-1.0.jar" tmp12996 /

tmp12996 содержит предварительно проверенные файлы.class. Вы можете столкнуться с другими проблемами, кроме тех, которые я перечислил выше.

  1. После того, как баночка создана из вышеприведенного шага, убедитесь, что ее структура соответствует ожидаемой. Один из способов проверить это - переименовать файл.jar в.zip, распаковать его, а затем проверить. Если это не так, как вам нужно, вы можете изменить структуру и затем упаковать ее (хотя я бы не сделал каких-либо серьезных изменений)

  2. Затем добавьте этот недавно созданный jar-файл в ваше приложение BlackBerry в качестве справочника, т.е. добавьте его в Java Build Path в своем затмении и проверьте его в окне "Порядок и экспорт".

  3. Это оно! Вы хороши, чтобы пойти! Запустите ваше приложение!

Вы можете столкнуться с ошибкой, указывающей, что модуль содержит ошибки проверки при попытке запуска в симуляторе. Одной из возможных причин этой проблемы является то, что ваша библиотека (исходный JAR) содержит API-интерфейсы, несовместимые с J2ME или BB JRE. Вы не можете получить ошибку компилятора при самостоятельной сборке библиотеки, так как она скомпилирована для Java 1.4 (или какой-либо другой версии). Лучше всего разобраться в проблеме - переместить весь ваш код в проект BB App, а затем собрать его. Это скажет вам все вопросы заранее. Вы вносите изменения по мере необходимости, а затем перемещаете код обратно в библиотеку. Если у вас нет исходного кода для используемой вами библиотеки (например, сторонней библиотеки), вам может не повезти! Также помните, что могут быть и другие проблемы, кроме тех, на которые я натолкнулся и решил.

Я документирую это подробно, потому что мне понадобилось очень много времени, чтобы понять все это; и, мягко говоря, был самым расстраивающим!

Я нашел другое решение. Если вы получили ошибку -1 при предварительной проверке файла JAR, просто запустите приложение библиотеки один раз. Потому что, если вы не запустите приложение, папка результатов будет пустой. Убедитесь, что эта папка не пуста.

Другие вопросы по тегам