ApacheFelix-将捆绑包存储在android应用程序的Assets目录中

ApacheFelix-将捆绑包存储在android应用程序的Assets目录中,android,bundle,assets,apache-felix,osgi-bundle,Android,Bundle,Assets,Apache Felix,Osgi Bundle,我正在将ApacheFelix嵌入android应用程序中。现在,我使用以下代码安装捆绑包: imageBundle = bundleContext1.installBundle("file:sdcard/Download/AndroidImageViewer_1.0.0.201308221559.jar"); 这可以正常工作,但需要将捆绑包存储在android设备的SD卡中。然而,我不喜欢这样。我希望捆绑包存储在android项目中的一个目录中。例如,在assests文件夹中。有没有办法做到

我正在将ApacheFelix嵌入android应用程序中。现在,我使用以下代码安装捆绑包:

imageBundle = bundleContext1.installBundle("file:sdcard/Download/AndroidImageViewer_1.0.0.201308221559.jar");
这可以正常工作,但需要将捆绑包存储在android设备的SD卡中。然而,我不喜欢这样。我希望捆绑包存储在android项目中的一个目录中。例如,在
assests
文件夹中。有没有办法做到这一点

我试过这个:

imageBundle = bundleContext1.installBundle("file:assets/bundles/AndroidImageViewer_1.0.0.201308221559.jar");

正如所料,它没有工作。

url是错误的。正确的URL应该是

file:///android_asset/AndroidImageViewer_1.0.0.201308221559.jar

正如前面所指出的。

我照你说的做了,但没用。我得到这个:08-23 19:14:02.159:W/System.err(6963):由以下原因引起:java.io.FileNotFoundException:/android\u asset/bundles/AndroidVideoPlayer\u 1.0.0.201308231205.jar(没有这样的文件或目录)您的文件位于资产子文件夹bundles中。在这种情况下,正确的路径是file:///android_asset/bundles/AndroidVideoPlayer_1.0.0.201308231205.jarI 我想这不是一直都有效。在您提供的链接中,有一个答案是:“适用于WebView,但在URL.openStream()上似乎失败。因此,您需要区分file://协议,并按照建议通过AssetManager进行处理。”因此,我能提出的最佳建议可能是以特定于Android的方式调整Felix源代码。它是开源的。