[ https://issues.apache.org/jira/browse/FELIX-3854?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13595787#comment-13595787 ]
Rafael Bachiller commented on FELIX-3854: ----------------------------------------- Karl: I've tested the reference protocol and everything worked well. However, as i have no root access, i don't really know which files is placing Felix inside the cache directory. Robin: I don't really understand what is the problem that makes you to place the .jar inside the dexOutputDir. In my case (Galaxy Nexus non rooted and Apache Felix 4.1.0.SNAPSHOT), i place the jar in a folder placed at the sdcard and Apache Felix is able to install it without any problem. I use the function: context.installBundle(String name, FileInputStream file) for install the bundle. If you want to, i can try your code in my smartphone to check it. > Problem running Felix in Android 4.1 ad 4.2 (JB) > ------------------------------------------------ > > Key: FELIX-3854 > URL: https://issues.apache.org/jira/browse/FELIX-3854 > Project: Felix > Issue Type: Bug > Components: Framework > Affects Versions: framework-4.0.3 > Environment: Once Felix is running in the smartphone (Samsung Galaxy > Nexus with Android 4.2), the problem arises when a new bundle is being > installed (considering that the felix cache directory has been placed in the > external sd card by using the property org.osgi.framework.storage). > Reporter: Rafael Bachiller > Assignee: Karl Pauls > Priority: Minor > Labels: Android, Bean, Jelly, patch > > During the installation process, Felix places the .jar in the cache and then > obtains the dex file that is inside the jar file in order to put the dex file > in the cache directory. Then, Felix executes it. > In the new versions of Android, this process fails because the system does > not allow any program to place and execute any dex file in the sd card. The > code line that illustrate the problem is in the file > felix/framework/src/main/java/org/apache/felix/frameworBundleWiringImp.java > (line 2271). > In my modest opinion, there are two possible solutions: > a) For these newer versions of Android, it is not possible to place the cache > in the external sd card. For this solution no changes are needed in Felix, > but it creates a new limitation for running in the Android devices (the cache > can only be placed in the internal memory at runtime). > b) Create a new parameter (e.g. felix.cache.dexfiles) that can be applied to > Android systems that indicates to Felix where to place the dex files. Thus, > Felix is not going to store in the same place the .jar files and the .dex > files (avoiding to waste the internal memory). For this solution, it is > necessary to create the parameter in Felix and to modify the line that has > been indicated before. > Thank you very much in advance. -- 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