android - OSGi - Activator can't access internal packages of the Bundle -


i'm trying run small emf-based application on apache felix. felix running on android device. i'm using eclipse without bnd , without maven.

i got emf bundle exports packages of:

org.eclipse.emf.common_droid-2.7.0.v20120127-1122.jar org.eclipse.emf.ecore_droid-2.7.0.v20120127-1122.jar org.eclipse.emf.ecore.xmi_droid-2.7.0.v20120127-1122.jar 

the structure of plugin-project:

[+] src ---> com.androidosgi.notifier ---> com.androidosgi.notifier.notification ---> com.androidosgi.notifier.notification.impl ---> com.androidosgi.notifier.notification.util [+] meta-inf ---> manifest.mf notification-1.0.ecore notification-1.0.ecorediag notification-1.0.ecorert notificationcomponent.xmi 

the activator in com.androidosgi.notifier.

the manifest.mf:

manifest-version: 1.0 bundle-manifestversion: 2 bundle-name: notification testing bundle-symbolicname: com.androidosgi.notifier bundle-version: 12.6.5 bundle-activator: com.androidosgi.notifier.activator bundle-vendor: homer simpson import-package:   com.androidosgi.notifier.notification,  com.androidosgi.notifier.notification.impl,  com.androidosgi.notifier.notification.util,  org.eclipse.emf.common,  org.eclipse.emf.common.archive,  org.eclipse.emf.common.command,  org.eclipse.emf.common.notify,  org.eclipse.emf.common.notify.impl,  org.eclipse.emf.common.util,  org.eclipse.emf.ecore,  org.eclipse.emf.ecore.impl,  org.eclipse.emf.ecore.plugin,  org.eclipse.emf.ecore.resource,  org.eclipse.emf.ecore.resource.impl,  org.eclipse.emf.ecore.util,  org.eclipse.emf.ecore.xmi,  org.eclipse.emf.ecore.xmi.impl,  org.eclipse.emf.ecore.xmi.util,  org.eclipse.emf.ecore.xml.namespace,  org.eclipse.emf.ecore.xml.namespace.impl,  org.eclipse.emf.ecore.xml.namespace.util,  org.eclipse.emf.ecore.xml.type,  org.eclipse.emf.ecore.xml.type.impl,  org.eclipse.emf.ecore.xml.type.internal,  org.eclipse.emf.ecore.xml.type.util,  org.osgi.framework;version="1.3.0" bundle-classpath: . export-package: com.androidosgi.notifier;x-internal:=true,  com.androidosgi.notifier.notification;x-internal:=true,  com.androidosgi.notifier.notification.impl;x-internal:=true,  com.androidosgi.notifier.notification.util;x-internal:=true 

before installed bundle on osgi, "dexed" , added classes.dex bundle.

if try start get: noclassdeffounderror enter image description here

any ideas or solutions ? :) thanks

emf not run on felix, or osgi framework other equinox. see following bug raised long time ago: https://bugs.eclipse.org/bugs/show_bug.cgi?id=328227

you have use re-packaging of emf osgi declarations properly. have on github stale now, i.e. packages old version of emf. see: https://github.com/njbartlett/emf-osgi

update: hasty, wasn't right answer. looks repackaged emf.

i suspect answer you're importing package com.androidosgi.notifier.notification , subpackages, packages inside bundle. should not import packages part of bundle.


Comments