Я получаю NoClassDefFoundError
во время выполнения, и я думал, что директива "uses"
позволит избежать этого, потому что я думал, что это создает транзитивность (поправьте меня, если я ошибаюсь). Вот моя конфигурация:
Bundle 1
Export-package A
Bundle 2
Export-package B, uses "A"
Import-package A
Bundle 3
Import-package B
Теперь исключение возникает, когда пакет 3 вызывает класс в B, который, в свою очередь, вызывает класс в A. На основе консоли я вижу, что BundleClassLoader
ищет класс в пакете 3 (другими словами, в самом себе), но не в пакете 1, где он мог бы его найти. Если я заставлю BND импортировать A в Bundle 3, все будет работать нормально, но это выглядит слишком трудоемко. я чувствую, что я что-то упускаю. Разве равноденствие не должно использовать информацию в манифестах для установки пути к классам пакета? или в худшем случае не должен ли BND обнаруживать зависимость 3 от 1 и импортировать пакет A в манифест 3?
Все мои пакеты active
и у меня нет uses
нарушений ограничений