Hi Maurice, See inline.
On Apr 2, 2012, at 11:51 AM, M. van Ree wrote: > I was considering the use of BNDTools indeed, and will look into that for > sure now. > I didn't know about the Bundle-ManifestVersion, will look into that too! > The comma is indeed a copy-paste error, as you can see in the bottom import > statement, I closed the last one without a comma. But, sharp to notice! Well, it's important to have a good view of what actually is going on in your code (it could be a simple typo). > > As far as tools go, I'm just using Eclipse Indigo and the latest Android > SDK, dexing and packaging jars with the tools (dx and aapt) from the SDK. > When opening the bundle jarfile, the API isn't in there, I don't know what > happens after installing and starting the bundle on Felix though...I can > actually install a bundle and print something to the console or use Log.d > to show a message in Logcat, so the bundle (without using Android > libraries) does seem to be packaged in the right way I guess? You can use dexdump to inspect the (dalvik-)contents of a bundle. > > I'll report back here how things work out after trying BNDTools. Good luck! > > Maurice Angelo > > On Mon, Apr 2, 2012 at 11:18 AM, Angelo van der Sijpt < > [email protected]> wrote: > >> Right. >> >> I'm not entirely sure what's up, but some things come to mind, >> - in stead of building the manifest by hand, you should consider using >> something like BND (perhaps with BNDTools, if you're an Eclipse user) to >> handle that for you. If you don't need to use DynamicImport, stick with >> 'regular' imports: that way, the framework can inform you better about >> what's wrong. >> - your bundle should have a "Bundle-ManifestVersion: 2" to state that it >> is an R4 bundle (again, BND will do that for you). >> - your Import-Package statement seems to have a comma after >> org.osgi.framework . I'm not sure whether that is a copy-paste error, or >> whether it is actually relevant. (<insert-bnd-notice/>) >> - what tools do you use for building your project? Is it possible that the >> Android API ends up _inside_ your bundle? >> >> Angelo >> >> On Apr 2, 2012, at 10:59 AM, M. van Ree wrote: >> >>> Hello Angelo, >>> >>> Thank you for your fast response! >>> Here is some more info: >>> >>> a: >>> public FelixManager(String rootPath) >>> { >>> this.rootPath = rootPath; >>> felixProperties = new FelixProperties(this.rootPath); >>> >>> bundlesDir = new File(rootPath+"/felix/bundle"); >>> if (!bundlesDir.exists()) { >>> if (!bundlesDir.mkdirs()) { >>> throw new IllegalStateException("Unable to create bundles dir"); >>> } >>> } >>> cacheDir = new File(rootPath+"/felix/cache"); >>> if (!cacheDir.exists()) { >>> if (!cacheDir.mkdirs()) { >>> throw new IllegalStateException("Unable to create felixcache >> dir"); >>> } >>> } >>> >>> try >>> { >>> felix = new Felix(felixProperties); >>> felix.start(); >>> } >>> catch (Exception ex) >>> { >>> ex.printStackTrace(); >>> } >>> } >>> >>> The felix properties are defined as following: >>> >>> private String m_felixAbsolutePath; >>> public FelixProperties(String rootpath) >>> { >>> m_felixAbsolutePath = rootpath; >>> put("org.osgi.framework.storage", m_felixAbsolutePath+"/felix/cache"); >>> put("felix.cache.rootdir",m_felixAbsolutePath+"/felix"); >>> put("felix.log.level", "4"); >>> put("felix.startlevel.bundle", "1"); >>> put("org.osgi.framework.system.packages.extra", >>> ANDROID_PACKAGES_FOR_EXPORT); >>> } >>> private final String ANDROID_PACKAGES_FOR_EXPORT= >>> "android; " + >>> "android.app;" + >>> "android.content;" + >>> "android.database;" + etc. etc. >>> >>> and b: >>> >>> Manifest-Version: 1.0 >>> Bundle-Name: drawbundle >>> Bundle-Activator: com.osgi.integration.drawbundle.Activator >>> Bundle-SymbolicName: com.osgi.integration.drawbundle >>> Bundle-Version: 0.0.1 >>> Import-Package: org.osgi.framework, >>> DynamicImport-Package: android.* >>> >>> I first, to no avail, tried including the Android packages manually in >> the >>> Import-Package statement, like so: >>> >>> Import-Package: org.osgi.framework, >>> android.view.LayoutInflater, >>> android.view.View, >>> android.widget.LinearLayout, >>> android.app.Activity, >>> android.app.TextView >>> >>> I've also tried including the Android jarfile in another bundle, and >>> exporting the packages from there, and then importing that bundle in the >>> above manifest. >>> >>> Maurice >>> >>> On Mon, Apr 2, 2012 at 10:39 AM, Angelo van der Sijpt < >>> [email protected]> wrote: >>> >>>> This could have something to do with the way you instantiate your >>>> framework, _or_ with the way your bundle is packaged. >>>> Could you post (a) your framework instantiation code, and (b) the >> manifest >>>> of your bundle? >>>> >>>> Angelo >>>> >>>> >>>> On Apr 2, 2012, at 10:18 AM, M. van Ree wrote: >>>> >>>>> Hello all, >>>>> >>>>> I have a problem when trying to make the Android lib available to my >> OSGi >>>>> bundles. >>>>> The error I'm getting is: >>>>> >>>>> 04-02 08:03:00.351: W/dalvikvm(18531): Method mismatch: onDraw in >>>>> Lcom/osgi/integration/drawbundle/DrawView; (cl=0x4067bb40) and super >>>>> Landroid/view/View; (cl=0x0) >>>>> 04-02 08:03:00.391: W/System.err(18531): Caused by: >>>> java.lang.LinkageError: >>>>> Classes resolve differently in superclass >>>>> >>>>> Off course I can see the cl=0x0, so that must be the culprit, but I >> have >>>> no >>>>> idea on how to get it fixed... >>>>> I'm exporting the packages as following in a properties class: >>>>> >>>>> private static final String ANDROID_PACKAGES_FOR_EXPORT = >>>>> ("android; " + >>>>> "android.app;" + >>>>> "android.content;" + >>>>> "android.database;" + >>>>> etc. etc. ); >>>>> >>>>> I'm really drawing a blank here on what could be wrong, I would expect >> to >>>>> receive an error on exporting/importing something empty that would >> point >>>> me >>>>> in the right direction, but it doesn't seem to be the case. >>>>> Who can tell me what I'm doing wrong here? >>>>> >>>>> >>>>> Regards, >>>>> Maurice >>>> >>>> >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: [email protected] >>>> For additional commands, e-mail: [email protected] >>>> >>>> >>> >>> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> >> --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]

