felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Karl Pauls <karlpa...@gmail.com>
Subject Re: Felix compiler version & Android dx
Date Tue, 04 May 2010 11:54:08 GMT
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 <karlpauls@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 <brucej@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:860)
>> 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>(BlacklistingHandlerTasks.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.java: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
> karlpauls@gmail.com
>



-- 
Karl Pauls
karlpauls@gmail.com

Mime
View raw message