Android-контекст и OSGi Bundle

1

Я фактически работаю над OSGi на Android, и я близок к достижению своей цели, но есть одна небольшая проблема.

Рамка (Apache Felix) работает успешно. Проблема возникает из Bundles, которые хотят получить контекст приложения. Я просто не могу их использовать, потому что во время выполнения у меня есть красивый "Не могу найти closse Android.content.Context", оговоренный с [...]. (И затем при попытке получить ServiceReference придет NoClassDefFoundError)

Я связал Android.jar с Bundle, но, похоже, этого недостаточно (даже если компиляция в порядке). Может быть, так, как я создаю пакет, что неправильно, я просто экспортирую его как .jar, когда закончил.

Итак, если у вас есть несколько советов о том, как решить эту проблему, они приветствуются;)

Спасибо!

  • 0
    Является ли Android.content.Context частью Android API? Похоже, это должно быть выставлено как экспорт системного пакета. Вы можете сделать это, добавив Android.content в свойство org.osgi.framework.system.packages.extra .
  • 0
    Ну, к сожалению, я уже попробовал это, выполняя configMap.put(Constants.FRAMEWORK_SYSTEMPACKAGES_EXTRA, "android.content"); Затем в Активаторе я регистрирую текущий контекст следующим образом: this.m_context.registerService(Context.class.getName(), appContext, null); Наконец, я пытаюсь получить соответствующую ServiceReference следующим образом: ServiceReference ref = context.getServiceReference(Context.class.getName()); но он выдает «NoClassDefFoundError» во время выполнения для этой строки.
Теги:
jar
osgi
bundle

1 ответ

1

Хорошо, я, наконец, закончил с этим. Я действительно дурак.

В Manifest.mf, раздел "Импорт-Пакет", не забудьте добавить android.content

Теперь он отлично работает;)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню