Hello,
I've tried your patch and it worked! Thank you!
BUT:
There is another Problem which only occur in all 1.9.0
snapshots (4. ,
7.,
8. july), but NOT with 1.8.0 :
If I add in my Android Project in Eclipse the fileinstall.jar
(1.2.0 or
current snapshot) to classpath while
having Felix 1.9.0 on classpath (as a referenced lib ) I get
folling
Error
when Eclipse tries to build the project (right after adding)
-> this does not happen with Felix 1.8.0
-> I can add fileinstall.jar without problems if no felix.jar
is added
-> if adding fileinstall.jar first, then adding felix.jar, the
same
problem
occurs
-> problem also occurs in a completly fresh android project
UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IllegalArgumentException: already added:
Lorg/osgi/service/log/LogEntry;
[2009-07-08 11:34:48 - FelixEmbedAndroid] at
com
.android
.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)
[2009-07-08 11:34:48 - FelixEmbedAndroid] at
com.android.dx.dex.file.DexFile.add(DexFile.java:143)
[2009-07-08 11:34:48 - FelixEmbedAndroid] at
com.android.dx.command.dexer.Main.processClass(Main.java:299)
[2009-07-08 11:34:48 - FelixEmbedAndroid] at
com.android.dx.command.dexer.Main.processFileBytes(Main.java:
276)
[2009-07-08 11:34:48 - FelixEmbedAndroid] at
com.android.dx.command.dexer.Main.access$100(Main.java:56)
[2009-07-08 11:34:48 - FelixEmbedAndroid] at
com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:
228)
[2009-07-08 11:34:48 - FelixEmbedAndroid] at
com
.android
.dx
.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:
245)
[2009-07-08 11:34:48 - FelixEmbedAndroid] at
com
.android
.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:
130)
[2009-07-08 11:34:48 - FelixEmbedAndroid] at
com
.android
.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:108)
[2009-07-08 11:34:48 - FelixEmbedAndroid] at
com.android.dx.command.dexer.Main.processOne(Main.java:245)
[2009-07-08 11:34:48 - FelixEmbedAndroid] at
com.android.dx.command.dexer.Main.processAllFiles(Main.java:183)
[2009-07-08 11:34:48 - FelixEmbedAndroid] at
com.android.dx.command.dexer.Main.run(Main.java:139)
[2009-07-08 11:34:48 - FelixEmbedAndroid] at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[2009-07-08 11:34:48 - FelixEmbedAndroid] at
sun
.reflect
.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
[2009-07-08 11:34:48 - FelixEmbedAndroid] at
sun
.reflect
.DelegatingMethodAccessorImpl
.invoke(DelegatingMethodAccessorImpl.java:25)
[2009-07-08 11:34:48 - FelixEmbedAndroid] at
java.lang.reflect.Method.invoke(Method.java:585)
[2009-07-08 11:34:48 - FelixEmbedAndroid] at
com.android.ide.eclipse.adt.build.DexWrapper.run(Unknown Source)
[2009-07-08 11:34:48 - FelixEmbedAndroid] at
com.android.ide.eclipse.adt.build.ApkBuilder.executeDx(Unknown
Source)
[2009-07-08 11:34:48 - FelixEmbedAndroid] at
com.android.ide.eclipse.adt.build.ApkBuilder.build(Unknown
Source)
[2009-07-08 11:34:48 - FelixEmbedAndroid] at
org.eclipse.core.internal.events.BuildManager
$2.run(BuildManager.java:633)
[2009-07-08 11:34:48 - FelixEmbedAndroid] at
org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
[2009-07-08 11:34:48 - FelixEmbedAndroid] at
org
.eclipse
.core
.internal.events.BuildManager.basicBuild(BuildManager.java:170)
[2009-07-08 11:34:48 - FelixEmbedAndroid] at
org
.eclipse
.core
.internal.events.BuildManager.basicBuild(BuildManager.java:201)
[2009-07-08 11:34:48 - FelixEmbedAndroid] at
org.eclipse.core.internal.events.BuildManager
$1.run(BuildManager.java:253)
[2009-07-08 11:34:48 - FelixEmbedAndroid] at
org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
[2009-07-08 11:34:48 - FelixEmbedAndroid] at
org
.eclipse
.core
.internal.events.BuildManager.basicBuild(BuildManager.java:256)
[2009-07-08 11:34:48 - FelixEmbedAndroid] at
org
.eclipse
.core
.internal.events.BuildManager.basicBuildLoop(BuildManager.java:
309)
[2009-07-08 11:34:48 - FelixEmbedAndroid] at
org
.eclipse
.core.internal.events.BuildManager.build(BuildManager.java:341)
[2009-07-08 11:34:48 - FelixEmbedAndroid] at
org
.eclipse
.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:
140)
[2009-07-08 11:34:48 - FelixEmbedAndroid] at
org
.eclipse
.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:238)
[2009-07-08 11:34:48 - FelixEmbedAndroid] at
org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
[2009-07-08 11:34:48 - FelixEmbedAndroid] 1 error; aborting
[2009-07-08 11:34:48 - FelixEmbedAndroid] Conversion to Dalvik
format
failed
with error 1
regards
Matthias
Am 07.07.2009 um 22:54 schrieb Richard S. Hall:
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