Ok, I have committed a potential workaround as described here:
https://issues.apache.org/jira/browse/FELIX-1193
If you could test again on trunk and respond on the issue that would be
great. Thanks!
-> richard
On 7/7/09 4:10 PM, Karl Pauls wrote:
Looks like a bug in android. Or at least it is something where sun
java behaves differently then dalvik/android. Anyways, we should be
able to workaround this. We will track this using FELIX-1193. Thanks
for letting us know!
regards,
Karl
On Tue, Jul 7, 2009 at 7:42 PM, Matthias Neubert<sur...@onlinehome.de> wrote:
Hello,
since nobody answered on my first mail (subject "Android + Felix 1.80 =
Problems")
I took the long way and found the solution on my own. It took a bit longer
because I'm completely new to OSGi and felix.
First the solution on that one thing, then the current bug:
Solution:
Felix 1.8.0 release doesn't have the patch for Android compatible
Classloading ( before I thought it has it already), so in adb shell the
command "chmod 777 /data/dalvik-cache" has to be executed (which shows us,
that this will not work on a real phone)
-> with Felix 1.8.0 and the little "hack" it now runs and its starting
Bundles. This is the first step getting the outdated ipojo sample running.
May be some more work is left.
-> without the hack, systembundle and ipojo.annotations get active, but for
example shell, shelltui and iPojo remain resolved and doesn't start.
Problem/Bug:
occures when I try run Felix 1.9.0 Snapshot as embedded in an Android
Application.(same project as mentioned above, just switched classpath to
newer jar file)
The access-rights-hack doesn't help here, so it must be a bug or something
like that.
If someone is interested in this bug, I can send my eclipse project, if
needed
Here is the stacktrace: (from DDMS Android Debugger)
07-07 19:02:31.133: WARN/dalvikvm(1187): Exception
Ljava/lang/RuntimeException; thrown during
Lorg/apache/felix/framework/ModuleImpl;.<clinit>
07-07 19:02:36.108: WARN/ActivityManager(600): Launch timeout has expired,
giving up wake lock!
07-07 19:02:36.553: WARN/ActivityManager(600): Activity idle timeout for
HistoryRecord{435f61b0
{de.mn.felixembedand/de.mn.felixembedand.FelixEmbedAndStarter}}
07-07 19:02:36.858: DEBUG/AndroidRuntime(1187): Shutting down VM
07-07 19:02:36.858: WARN/dalvikvm(1187): threadid=3: thread exiting with
uncaught exception (group=0x4000fe70)
07-07 19:02:36.864: ERROR/AndroidRuntime(1187): Uncaught handler: thread
main exiting due to uncaught exception
07-07 19:02:37.043: ERROR/AndroidRuntime(1187):
java.lang.ExceptionInInitializerError
07-07 19:02:37.043: ERROR/AndroidRuntime(1187): at
org.apache.felix.framework.ExtensionManager.<init>(ExtensionManager.java:142)
07-07 19:02:37.043: ERROR/AndroidRuntime(1187): at
org.apache.felix.framework.Felix.<init>(Felix.java:302)
07-07 19:02:37.043: ERROR/AndroidRuntime(1187): at
de.mn.felixembedand.FelixEmbedAndStarter.onCreate(FelixEmbedAndStarter.java:77)
07-07 19:02:37.043: ERROR/AndroidRuntime(1187): at
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
07-07 19:02:37.043: ERROR/AndroidRuntime(1187): at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2231)
07-07 19:02:37.043: ERROR/AndroidRuntime(1187): at
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2284)
07-07 19:02:37.043: ERROR/AndroidRuntime(1187): at
android.app.ActivityThread.access$1800(ActivityThread.java:112)
07-07 19:02:37.043: ERROR/AndroidRuntime(1187): at
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1692)
07-07 19:02:37.043: ERROR/AndroidRuntime(1187): at
android.os.Handler.dispatchMessage(Handler.java:99)
07-07 19:02:37.043: ERROR/AndroidRuntime(1187): at
android.os.Looper.loop(Looper.java:123)
07-07 19:02:37.043: ERROR/AndroidRuntime(1187): at
android.app.ActivityThread.main(ActivityThread.java:3948)
07-07 19:02:37.043: ERROR/AndroidRuntime(1187): at
java.lang.reflect.Method.invokeNative(Native Method)
07-07 19:02:37.043: ERROR/AndroidRuntime(1187): at
java.lang.reflect.Method.invoke(Method.java:521)
07-07 19:02:37.043: ERROR/AndroidRuntime(1187): at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782)
07-07 19:02:37.043: ERROR/AndroidRuntime(1187): at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
07-07 19:02:37.043: ERROR/AndroidRuntime(1187): at
dalvik.system.NativeStart.main(Native Method)
07-07 19:02:37.043: ERROR/AndroidRuntime(1187): Caused by:
java.lang.RuntimeException: Problem creating boot delegation class loader.
07-07 19:02:37.043: ERROR/AndroidRuntime(1187): at
org.apache.felix.framework.ModuleImpl.<clinit>(ModuleImpl.java:114)
07-07 19:02:37.043: ERROR/AndroidRuntime(1187): ... 16 more
07-07 19:02:37.043: ERROR/AndroidRuntime(1187): Caused by:
java.lang.reflect.InvocationTargetException
07-07 19:02:37.043: ERROR/AndroidRuntime(1187): at
java.security.SecureClassLoader.<init>(SecureClassLoader.java:76)
07-07 19:02:37.043: ERROR/AndroidRuntime(1187): at
java.lang.reflect.Constructor.constructNative(Native Method)
07-07 19:02:37.043: ERROR/AndroidRuntime(1187): at
java.lang.reflect.Constructor.newInstance(Constructor.java:446)
07-07 19:02:37.043: ERROR/AndroidRuntime(1187): at
org.apache.felix.framework.util.SecureAction.invoke(SecureAction.java:862)
07-07 19:02:37.043: ERROR/AndroidRuntime(1187): at
org.apache.felix.framework.ModuleImpl.<clinit>(ModuleImpl.java:109)
07-07 19:02:37.043: ERROR/AndroidRuntime(1187): ... 16 more
07-07 19:02:37.043: ERROR/AndroidRuntime(1187): Caused by:
java.lang.NullPointerException: Parent ClassLoader may not be null
07-07 19:02:37.043: ERROR/AndroidRuntime(1187): at
java.lang.ClassLoader.<init>(ClassLoader.java:239)
07-07 19:02:37.043: ERROR/AndroidRuntime(1187): at
java.lang.ClassLoader.<init>(ClassLoader.java:226)
07-07 19:02:37.043: ERROR/AndroidRuntime(1187): ... 21 more
My Config:
Eclipse 3.4
Android SDK 1.5r2
ADT 0.91 (current)
Java SDK: JVM 1.5.0 MacOS X
regards
matthias