You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Karl Pauls (JIRA)" <ji...@apache.org> on 2012/09/03 14:24:07 UTC

[jira] [Resolved] (FELIX-3626) Issue of felix on android 4.1

     [ https://issues.apache.org/jira/browse/FELIX-3626?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Karl Pauls resolved FELIX-3626.
-------------------------------

       Resolution: Fixed
    Fix Version/s: framework-4.2.0

I added a workaround to trunk in r1380214. Can you please try it with the current trunk and close this issue if it works for you?

The problem is that starting with 4.1 on android the built-in handlers are renamed and moved -- hence, not following the normal pattern for url handler classnames. This makes us unable to for e.g., open file/http/ftp/https/jar urls. I'm trying to special case this situation and create the handlers myself if need be. Works for me for now.
                
> Issue of felix on android 4.1
> -----------------------------
>
>                 Key: FELIX-3626
>                 URL: https://issues.apache.org/jira/browse/FELIX-3626
>             Project: Felix
>          Issue Type: Bug
>          Components: Bundle Repository (OBR), Felix Commons, Gogo Command, Gogo Runtime, Gogo Shell
>         Environment: felix 4.0.3 on android 4.1
>            Reporter: orga shih
>            Assignee: Karl Pauls
>              Labels: features, newbie
>             Fix For: framework-4.2.0
>
>
> I am trying to put apache felix to android 4.1, but all default bundles can't be installed.
> At first, I follow the tutorial "http://felix.apache.org/site/apache-felix-framework-and-google-android.html".
> Using the "felix-framework-4.0.3" for android 4.1 emulator. because I want to port it to Nexus 7.
> then I get the error as below:
> Problem creating boot delegation class loader: java.lang.reflect.InvocationTargetException
> Auto-deploy install: org.osgi.framework.BundleException: Unable to cache bundle: file:/data/felix/bundle/org.apache.felix.bundlerepository-1.6.6.jar - java.net.MalformedURLException: java.lang.IllegalStateException: Unknown protocol: file
> Auto-deploy install: org.osgi.framework.BundleException: Unable to cache bundle: file:/data/felix/bundle/org.apache.felix.gogo.command-0.12.0.jar - java.net.MalformedURLException: java.lang.IllegalStateException: Unknown protocol: file
> Auto-deploy install: org.osgi.framework.BundleException: Unable to cache bundle: file:/data/felix/bundle/org.apache.felix.gogo.runtime-0.10.0.jar - java.net.MalformedURLException: java.lang.IllegalStateException: Unknown protocol: file
> Auto-deploy install: org.osgi.framework.BundleException: Unable to cache bundle: file:/data/felix/bundle/org.apache.felix.gogo.shell-0.10.0.jar - java.net.MalformedURLException: java.lang.IllegalStateException: Unknown protocol: file
> It looks like all bundles can't be installed. Are there any suggestion about this?
> update:
> When add property "felix.service.urlhandlers=false", get another exception
> Problem creating boot delegation class loader: java.lang.reflect.InvocationTargetException
> gogo: MalformedURLException: Unknown protocol: bundle
> java.net.MalformedURLException: Unknown protocol: bundle
> 	at java.net.URL.<init>(URL.java:184)
> 	at java.net.URL.<init>(URL.java:127)
> 	at java.net.URI.toURL(URI.java:1357)
> 	at org.apache.felix.gogo.shell.Shell.readScript(Shell.java:209)
> 	at org.apache.felix.gogo.shell.Shell.source(Shell.java:192)
> 	at org.apache.felix.gogo.shell.Shell.gosh(Shell.java:109)
> 	at java.lang.reflect.Method.invokeNative(Native Method)
> 	at java.lang.reflect.Method.invoke(Method.java:511)
> 	at org.apache.felix.gogo.runtime.Reflective.invoke(Reflective.java:137)
> 	at org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:82)
> 	at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:477)
> 	at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:403)
> 	at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)
> 	at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183)
> 	at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120)
> 	at org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:89)
> 	at org.apache.felix.gogo.shell.Activator.run(Activator.java:75)
> 	at java.lang.Thread.run(Thread.java:856)
> Detail step:
> 1.download felix-framework-4.0.3 and "osgi-android - felix 1.4, android SDK 1.0.zip" and extract them.
> 2.do dx and aapt for jar files in felix-framework-4.0.3.
> 3.copy felix.sh from "osgi-android - felix 1.4, android SDK 1.0" to felix-framework-4.0.3
> 4.start emulator of android 4.1
> 5.push felix-framework-4.0.3 to android(/data/felix)
> 6.adb shell and cd to /data/felix
> 7.sh felix.sh
> More info:
> I have tried different versions of android and felix.
> 1."osgi-android - felix 1.4, android SDK 1.0.zip"  works normally on android 4.1 with it bundles.
> 2. felix-framework-4.0.3 is work on android 4.03 and 2.3.3 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira