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?
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 >> > >