On 5/4/10 10:19, Jackson, Bruce wrote:
Yes, that's easier said than done!
I seem to remember that the was no single place where you could set the
compiler version to use for building Felix. Is that correct?

You should just be able to edit the Event Admin pom.xml file to include this in its plugins section, no?

-> richard


On 04/05/2010 12:54, "Karl Pauls"<karlpa...@gmail.com>  wrote:

And like before, make sure you don't have other messages like "class
resolved by unexpected dex" in the log ...

regards,

Karl

On Tue, May 4, 2010 at 1:33 PM, Karl Pauls<karlpa...@gmail.com>  wrote:
Well, this should be easy enough to test, right? Just re-compile the
eventadmin and see whether that fixes the issue or not - if it does,
that would be really useful to know :-)

regards,

Karl

On Tue, May 4, 2010 at 1:23 PM, Jackson, Bruce<bru...@qualcomm.com>  wrote:
Hi All

Some time back, we had a discussion about the default compiler version used
to build Felix, and whether this was compatible with the requirements of
Android.

I noted that when you dx the bundle jars produced by the regular Felix
build, you get a whole collection of warning of the the form:

$ dx --dex --output=classes.dex org.apache.felix.eventadmin-1.2.2.jar
warning: Ignoring InnerClasses attribute for an anonymous inner class that
doesn't come with an associated EnclosingMethod attribute. (This class was
probably produced by a broken compiler.)

...for example. We debated this, and decided that these were just warning
and not a real problem. However, now that I have a working Felix framework
on Android, I find that when I load and start the EventAdmin bundle, I find
that it fails to start with the following message in the log:

05-04 12:01:26.853: WARN/System.err(4682):
org.osgi.framework.BundleException: Activator start error in bundle
org.apache.felix.eventadmin [5].
05-04 12:01:26.853: WARN/System.err(4682):     at
org.apache.felix.framework.Felix.activateBundle(Felix.java:1807)
05-04 12:01:26.853: WARN/System.err(4682):     at
org.apache.felix.framework.Felix.startBundle(Felix.java:1682)
05-04 12:01:26.853: WARN/System.err(4682):     at
org.apache.felix.framework.BundleImpl.start(BundleImpl.java:905)
05-04 12:01:26.853: WARN/System.err(4682):     at
org.apache.felix.framework.BundleImpl.start(BundleImpl.java:892)
05-04 12:01:26.853: WARN/System.err(4682):     at
com.skifta.android.client.SkiftaService.startOSGi(SkiftaService.java:437)
05-04 12:01:26.853: WARN/System.err(4682):     at
com.skifta.android.client.SkiftaService.init(SkiftaService.java:174)
05-04 12:01:26.853: WARN/System.err(4682):     at
com.skifta.android.client.SkiftaService.onCreate(SkiftaService.java:166)
05-04 12:01:26.853: WARN/System.err(4682):     at
android.app.ActivityThread.handleCreateService(ActivityThread.java:2894)
05-04 12:01:26.853: WARN/System.err(4682):     at
android.app.ActivityThread.access$3200(ActivityThread.java:126)
05-04 12:01:26.853: WARN/System.err(4682):     at
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1986)
05-04 12:01:26.853: WARN/System.err(4682):     at
android.os.Handler.dispatchMessage(Handler.java:99)
05-04 12:01:26.853: WARN/System.err(4682):     at
android.os.Looper.loop(Looper.java:123)
05-04 12:01:26.853: WARN/System.err(4682):     at
android.app.ActivityThread.main(ActivityThread.java:4595)
05-04 12:01:26.853: WARN/System.err(4682):     at
java.lang.reflect.Method.invokeNative(Native Method)
05-04 12:01:26.853: WARN/System.err(4682):     at
java.lang.reflect.Method.invoke(Method.java:521)
05-04 12:01:26.853: WARN/System.err(4682):     at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:8
60)
05-04 12:01:26.853: WARN/System.err(4682):     at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
05-04 12:01:26.853: WARN/System.err(4682):     at
dalvik.system.NativeStart.main(Native Method)
05-04 12:01:26.853: WARN/System.err(4682): Caused by:
java.lang.NoClassDefFoundError:
org.apache.felix.eventadmin.impl.handler.BlacklistingHandlerTasks$1
05-04 12:01:26.853: WARN/System.err(4682):     at
org.apache.felix.eventadmin.impl.handler.BlacklistingHandlerTasks.<init>(Bla
cklistingHandlerTasks.java:223)
05-04 12:01:26.853: WARN/System.err(4682):     at
org.apache.felix.eventadmin.impl.Configuration.start(Configuration.java:293)
05-04 12:01:26.853: WARN/System.err(4682):     at

org.apache.felix.eventadmin.impl.Configuration.<init>(Configuration.java:152>>>
)
05-04 12:01:26.853: WARN/System.err(4682):     at
org.apache.felix.eventadmin.impl.Activator.start(Activator.java:65)
05-04 12:01:26.853: WARN/System.err(4682):     at
org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.jav
a:661)
05-04 12:01:26.853: WARN/System.err(4682):     at
org.apache.felix.framework.Felix.activateBundle(Felix.java:1760)
05-04 12:01:26.853: WARN/System.err(4682):     ... 17 more

Looking at the class in question (BlacklistingHandlerTasks:223) I see that
this is a use of an anonymous inner class:

private final EventHandler m_nullEventHandler = new EventHandler()
    {
        /**
         * This is a null object that is supposed to do nothing at this
point.
         *
         * @param event an event that is not used
         */
       public void handleEvent(final Event event)
        {
            // This is a null object that is supposed to do nothing at this
           // point. This is used once a EventHandler is requested for a
           // servicereference that is either stale (i.e., unregistered) or
           // blacklisted.
       }
    };

Is this an example of the problem we were discussing a couple of weeks ago,
where dx canĀ¹t produce correct copde because the compiler version that was
used to create the bundle was pre-1.5 do you think?

Thanks

Bruce



--
Karl Pauls
karlpa...@gmail.com


Reply via email to